作为标题,在C#中。是否有人可能想要一个受保护的或内部接口?
答案 0 :(得分:28)
因为界面粗略地表达了“对外部世界的看法”,并且因为它是针对外部世界的,所以没有必要使其成员受到保护或私有化。
或者换句话说,它是与外部世界的契约,它指定实现此接口的类执行某些操作。因此,隐藏它的某些部分是没有意义的。
但是,接口本身可以有protected
或internal
等访问说明符。因此将“外部世界”限制为“整个外部世界”的子集。
答案 1 :(得分:5)
接口成员始终是公共的,因为接口的目的是使其他类型能够访问类或结构。没有访问修饰符可以应用于接口成员。
答案 2 :(得分:4)
所有接口方法都是Public。您无法在界面中创建访问修饰符。如果要使用一个,请使用Abstract类。
答案 3 :(得分:4)
这是由于界面的性质。根据定义,接口是规范。 .NET规范中的规则规定实现接口的类必须实现该接口的所有成员。 现在,如果我们将成员标记为私有,那么实现类就无法实现该特定成员。
答案 4 :(得分:0)
答案 5 :(得分:0)
接口是编码合同,这就是它在方法签名中不允许任何其他访问修饰符的原因。 但是接口本身可以是内部但不是私有或受保护的,内部允许在程序集内访问,这是完全正常的。