我们可以在Interface中有成员变量吗?

时间:2010-08-20 16:42:25

标签: vb.net variables interface

我在某地读过接口可以有成员变量。

  

仅限静态最终常量,可以使用   他们没有在课堂上的资格   实现接口。在   其他爪子,这些不合格的名字   污染命名空间。您可以使用   他们在哪里并不明显   是从那以后来的   资格是可选的。

我对他们的意思不太了解?有什么帮助吗?

3 个答案:

答案 0 :(得分:5)

您阅读的内容不正确。接口不能包含成员变量。

在VB.Net中,接口内唯一允许的定义是

  • 属性
  • 方法
  • 活动
  • 类型定义(在C#中不合法)

我不完全确定上段是指什么。基于文本虽然听起来像是在引用Java。他们说静态和最终通常与Java代码相关联而不是.Net(静态和只读)。

你能给我们一些关于它的背景吗?

答案 1 :(得分:1)

如果在类MyClass中定义这样的常量:

public static final int MY_CONSTANT = 1;

您可以使用 MyClass 限定符从其他类中将其称为 MyClass.MY_CONSTANT 。这暗示了常量定义的位置。

如果您在界面 MyInterface 中定义了这样的常量,您仍然可以使用 MyInterface.MY_CONSTANT 来引用它。但是,在实施 MyInsterface 的课程中,您只需使用 MY_CONSTANT 而不使用“ MyInterface ”前缀。

它可能看起来很方便(键击次数较少),但可能会导致混淆,因为没有限定符(前缀),不清楚最初定义常量的位置。

答案 2 :(得分:0)

向接口添加成员变量将通过后门引入MI。

在.NET中不可用,抱歉。

我希望它在那里。