internal
只有在同一程序集的文件中,内部类型或成员才可访问
private
私有访问是允许的最低访问级别。 私有成员只有在声明它们的类和结构体中才是可访问的
protected
基类和派生类可访问
public
public 关键字是类型和类型成员的访问修饰符。 公共访问是允许的最高访问级别。 对访问公共成员没有限制
protected internal
protected internal 关键字组合是一种成员访问修饰符。可从当前程序集 或 派生类访问受保护的内部成员
private protected
只能在包含的程序集的派生类中访问
通过实例访问会产生错误。 但是,如果将其用作继承的成员,则会成功。
file
file 可以应用于任何类型定义以限制其只能在当前文件中使用。这样,我们可以在一个项目中拥有多个同名的类。。 file 修饰符通常应用于源生成器编写的类型。 文件本地类型为源生成器提供了一种方便的方法,能够避免在生成的类型之间发生名称冲突。 file 修饰符声明文件本地类型,如以下示例所示:
file class HiddenWidget
{
// implementation
}
file不可以与其他修饰符一起使用
需要注意的是:从C# 11开始,file关键字是类型修饰符,这也意味着它不能与其他修饰符一起使用,比如public、internal、private 等。
file可以修饰的类型
class
struct
interface
enum
delegate
record
record struct
file 不可修饰的类型
file修饰符不适用于嵌套在父类型中的类型。
它也不适用于方法属性、事件和字段,但语言设计说明解释说:“为非类型文件范围的成员留出设计空间,以便以后出现。”