可访问性级别(C# 参考)

使用访问修饰符 publicprotectedinternalprivate,为成员指定以下声明的可访问性级别之一。

声明的可访问性 含义
public 访问不受限制。
protected 访问限于包含类或派生自包含类的类型。
internal 访问限于当前程序集。
protected internal 访问限于当前程序集或派生自包含类的类型。
private 访问限于包含类。
private protected 访问限于包含类或当前程序集中派生自包含类的类型。

除使用 protected internalprivate protected 组合的情况外,一个成员或类型仅允许一个访问修饰符。

命名空间中不允许出现访问修饰符。 命名空间没有任何访问限制。

根据出现成员声明的上下文,仅允许某些声明的可访问性。 如果未在成员声明中指定访问修饰符,则将使用默认可访问性。

未嵌套在其他类型中的顶级类型只能具有 internalpublic 可访问性。 这些类型的默认可访问性为 internal

作为其他类型的成员的嵌套类型可以具有如下表所示的声明的可访问性。

成员 默认成员可访问性 允许的成员的声明的可访问性
enum public
class private public

protected

internal

private

protected internal

private protected
interface public public

protected

internal

private*

protected internal

private protected
struct private public

internal

private

* 具有 private 可访问性的 interface 成员必须具有默认的实现。

说明

如果使用 record 关键字修饰符修改类或结构,则允许相同的访问修饰符。
此外,使用 record 修饰符,类和结构的默认成员可访问性仍然为 private

嵌套类型的可访问性依赖于它的可访问域,该域是由已声明的成员可访问性和直接包含类型的可访问域这二者共同确定的。 但是,嵌套类型的可访问域不能超出包含类型的可访问域。

C# 语言规范

有关详细信息,请参阅 C# 语言规范。 该语言规范是 C# 语法和用法的权威资料。

另请参阅