【发布时间】:2011-08-27 19:13:31
【问题描述】:
【问题讨论】:
-
这样不会破坏界面的全部意义吗?
【问题讨论】:
因为接口在粗略的术语中是“外部世界的视图”,并且由于它是针对外部世界的,所以将其成员设置为受保护或私有是没有意义的。
或者换句话说,它是一个与外部世界的契约,它指定实现这个接口的类做一些特定的事情。所以,隐藏其中的一部分是没有意义的。
但是,接口本身可以具有访问说明符,例如 protected 或 internal 等。因此将“外部世界”限制为“整个外部世界”的子集。
【讨论】:
接口成员始终是公共的,因为接口的目的是使其他类型能够访问类或结构。不能对接口成员应用访问修饰符。
【讨论】:
所有接口方法都是公共的。您不能在界面中创建访问修饰符。如果你想使用一个,请使用 Abstract 类。
【讨论】:
这是由于界面的性质。根据定义,接口是规范。 .NET 规范中的一条规则规定,实现接口的类必须实现该接口的所有成员。 现在,如果我们将成员标记为私有,那么实现类就无法实现该特定成员。
【讨论】:
接口是编码契约,这就是它不允许在其方法签名中除 Public 之外的任何访问修饰符的原因。 但是接口本身可以是内部的,但不是私有的或受保护的,内部允许在程序集中进行访问,这非常好。
【讨论】: