声明的可访问性 | 含义 |
---|---|
public |
访问不受限制。 |
protected |
访问限于包含类或派生自包含类的类型。 |
internal |
访问限于当前程序集。 |
protected internal |
访问限于当前程序集或派生自包含类的类型。 |
private |
访问限于包含类。 |
private protected |
访问限于包含类或当前程序集中派生自包含类的类型。 自 C# 7.2 之后可用。 |
除使用 protected internal
或private protected
组合的情况外,一个成员或类型仅允许一个访问修饰符。
命名空间中不允许出现访问修饰符。 命名空间没有任何访问限制。
根据出现成员声明的上下文,仅允许某些声明的可访问性。 如果未在成员声明中指定访问修饰符,则将使用默认可访问性。
未嵌套在其他类型中的顶级类型只能具有 internal
或 public
可访问性。 这些类型的默认可访问性为 internal
。
作为其他类型的成员的嵌套类型可以具有如下表所示的声明的可访问性。
成员 | 默认成员可访问性 | 允许的成员的声明的可访问性 |
---|---|---|
enum |
public |
无 |
class |
private |
public protected internal private protected internal private protected |
interface |
public |
无 |
struct |
private |
public internal private |
嵌套类型的可访问性依赖于它的可访问域,该域是由已声明的成员可访问性和直接包含类型的可访问域这二者共同确定的。 但是,嵌套类型的可访问域不能超出包含类型的可访问域。