辅助功能级别 (C# 参考)

使用访问修饰符publicprotectedinternalprivate为成员指定以下声明的辅助功能级别之一。

  • public:访问不受限制。
  • protected:访问限于包含类或派生自包含类的类型。
  • internal:访问限于当前程序集。
  • protected internal:访问限于当前程序集或派生自包含类的类型。
  • private:访问限于包含类。
  • private protected:访问限于包含类或当前程序集中派生自包含类的类型。

C# 语言参考记录了 C# 语言的最新发布版本。 它还包含即将发布的语言版本公共预览版中功能的初始文档。

本文档标识了在语言的最后三个版本或当前公共预览版中首次引入的任何功能。

小窍门

若要查找 C# 中首次引入功能时,请参阅 有关 C# 语言版本历史记录的文章。

顶级(非嵌套)类型可以使用 文件 修饰符。 修饰 file 符限制对同一源文件中的代码的访问。 不能将 file 修饰符与任何访问修饰符合并。

仅对成员或类型使用一个访问修饰符,但使用 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

interface* 具有private辅助功能的成员必须具有默认实现。

注释

如果使用关键字修饰符修改类或结构 record ,请使用相同的访问修饰符。 此外,使用 record 修饰符时,默认成员辅助功能仍 private 适用于类和结构。

嵌套类型的可访问性取决于其 辅助功能域,成员的声明可访问性和立即包含类型的辅助功能域确定。 但是,嵌套类型的辅助功能域不能超过包含类型的辅助功能域。

C# 语言规范

有关详细信息,请参阅 C# 语言规范。 语言规范是 C# 语法和用法的明确来源。

另请参阅