![](/img/trans.png)
[英]Can I force the implementors of an Interface to apply certain attribute on a member?
[英]Can we have member variables in Interface?
我在某处看到接口可以具有成员变量。
仅静态最终常量可以在实现接口的类中使用而无需限定。 另一方面,这些不合格的名称污染了名称空间。 您可以使用它们,并且它们的来源不明显,因为资格是可选的。
我对它们的含义不太了解? 有什么帮助吗?
您阅读的内容不正确。 接口不能具有成员变量。
在VB.Net中,接口内唯一允许的定义是
我不完全确定上面的段落指的是什么。 虽然听起来像是基于文本,但实际上是指Java。 他们用语static(静态)和final(最终)通常与Java代码关联,而不与.Net(静态和只读)关联。
您能给我们更多的背景吗?
如果您在类MyClass中定义这样的常量:
public static final int MY_CONSTANT = 1;
您可以使用MyClass限定符从其他类将其称为MyClass.MY_CONSTANT 。 这暗示了常量定义的位置。
如果您在接口MyInterface中定义了这样的常数,仍然可以使用MyInterface.MY_CONSTANT引用它。 然而,在实施类MyInsterface你可以简单地使用MY_CONSTANT没有“MyInterface的 ”前缀。
它看起来很方便(按键次数较少),但可能会引起混淆,因为如果没有限定符(前缀),则不清楚该常量的原始定义位置。
将成员变量添加到接口将通过后门引入MI。
.NET中不可用,对不起。
我希望它在那里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.