为什么接口成员没有访问修饰符?

可能重复:
为什么我不能拥有受保护的接口成员?

作为标题,在C#中。 是否有人可能想要拥有受保护或内部接口?

因为Interface粗略地说是“对外部世界的看法”,因为它是针对外部世界的,所以没有必要使其成员受到保护或私有化。

或者换句话说,它是与外界的契约 ,它指定实现此接口的类执行某些操作。 因此,隐藏它的某些部分是没有意义的。

但是,接口本身可以具有protectedinternal等访问说明符。从而将“外部世界”限制为“整个外部世界”的子集。

接口成员始终是公共的,因为接口的目的是使其他类型能够访问类或结构。 没有访问修饰符可以应用于接口成员。

所有接口方法都是Public。 您无法在界面中创建访问修饰符。 如果要使用一个,请使用Abstract类。

这是由于界面的性质。 根据定义,接口是规范。 .NET规范中的规则规定实现接口的类必须实现该接口的所有成员。 现在,如果我们将成员标记为私有,那么实现类就无法实现该特定成员。

有关C#接口,请参阅非公共成员

接口是编码合同,这就是它在方法签名中不允许任何其他访问修饰符的原因。 但是接口本身可以是内部但不是私有或受保护,内部允许在程序集内访问,这是完全正常的。