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

本文关键字:访问 接口 成员 为什么 | 更新日期: 2023-09-27 17:56:52

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

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

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

因为界面是粗略的"对外部世界的看法",并且由于它是面向外部世界的,因此将其成员保护或私有是没有意义的。

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

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

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

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

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

请参阅 C# 接口的非公共成员

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