为什么界面成员没有访问修饰符?

时间:2011-05-18 06:36:55

标签: c# interface

  

可能重复:
  Why can't I have protected interface members?

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

6 个答案:

答案 0 :(得分:28)

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

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

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

答案 1 :(得分:5)

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

答案 2 :(得分:4)

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

答案 3 :(得分:4)

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

答案 4 :(得分:0)

答案 5 :(得分:0)

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