C# 修饰符
修饰符:
访问修饰符:
1.公用-public-关键字是类型和类型成员的访问修饰符。
公共访问是允许的最高访问级别。 对访问公共成员没有限制。
2.受保护-protected-关键字是一个成员访问修饰符。
受保护成员在其所在的类中可由派生类实例访问。
3.内部-internal-关键字是类型和类型成员的访问修饰符。
只有在同一程序集的文件中,内部类型或成员才可访问。
4.专用-private-关键字是一个成员访问修饰符。
私有访问是允许的最低访问级别。 私有成员只有在声明它们的类和结构体中才是可访问的。
5.abstract:修饰符指示被修改内容的实现已丢失或不完整。
abstract 修饰符可用于类、方法、属性、索引和事件。 在类声明中使用 abstract
修饰符以指示某个类仅旨在作为其他类的基类。 标记为 abstract 的成员,或包含在抽象类中的成员,都必须由派生自抽象类的类来实现。
6.async:使用 async
修饰符可将方法、lambda 表达式或匿名方法指定为异步。
如果对方法或表达式使用此修饰符,则其称为异步方法。
7.const:使用 const
关键字来声明某个常量字段或常量局部变量。
常量字段和常量局部变量不是变量并且不能修改。 常量可以为数字、布尔值、字符串或 null 引用。 不要创建常量来表示你需要随时更改的信息。 例如,不要使用常量字段来存储服务的价格、产品版本号或公司的品牌名称。 这些值会随着时间发生变化;因为编译器会传播常量,所以必须重新编译通过库编译的其他代码以查看更改。
8.event:用于声明发布服务器类中的事件。
9.extern:用于声明在外部实现的方法。
10.in:(泛型修饰符) 对于泛型类型参数,in
关键字可指定类型参数是逆变的。 可以在泛型接口和委托中使用 in
关键字。
11.out:(泛型修饰符)对于泛型类型参数,out
关键字可指定类型参数是协变的。 可以在泛型接口和委托中使用 out
关键字。
12.override:扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现需要 override
修饰符。
13.readonly:readonly
关键字是一个可在字段上使用的修饰符。
当字段声明包括 readonly
修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。
14.sealed:应用于某个类时,sealed
修饰符可阻止其他类继承自该类。
15.static:使用 static
修饰符可声明属于类型本身而不是属于特定对象的静态成员。
static
修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、终结器或类以外的类型。
16.unsafe:unsafe
关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的。
17.virtual:virtual
关键字用于修改方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。
18.volatile:
volatile
关键字指示一个字段可以由多个同时执行的线程修改。声明为 volatile
的字段不受编译器优化(假定由单个线程访问)的限制。 这样可以确保该字段在任何时间呈现的都是最新的值。
volatile
修饰符通常用于由多个线程访问、但不使用 lock 语句对访问进行序列化的字段。
volatile
关键字可应用于以下类型的字段:
-
引用类型。
-
指针类型(在不安全的上下文中)。 请注意,虽然指针本身可以是可变的,但是它指向的对象不能是可变的。 换句话说,不能声明“指向可变对象的指针”。
-
类型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。
-
具有以下基类型之一的枚举类型:byte、sbyte、short、ushort、int 或 uint。
-
已知为引用类型的泛型类型参数。
-
IntPtr 和 UIntPtr。