本文主要是介绍C#关键字 sealed、unsafe、virtual、volatile,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
sealed
应用于某个类时,sealed 修饰符可阻止其他类继承自该类。 在下面的示例中,类 B 继承自类 A,但没有类可以继承自类 B。
class A {}
sealed class B : A {}
还可以对替代基类中的 虚方法 或 属性的方法 或 属性 使用 sealed 修饰符。 这使你可以允许类派生自你的类并防止它们替代特定虚方法或属性。
unsafe
unsafe 关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的
可在类型或成员的声明中使用 unsafe 修饰符。 因此,类型或成员的整个正文范围均被视为不安全上下文
virtual
关键字用于修改方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。
虚拟成员的实现可由派生类中的替代成员更改
volatile
volatile 关键字指示一个字段可以由多个同时执行的线程修改。 出于性能原因,编译器,运行时系统甚至硬件都可能重新排列对存储器位置的读取和写入。 声明为 volatile 的字段将从某些类型的优化中排除。 不确保从所有执行线程整体来看时所有易失性写入操作均按执行顺序排序。
volatile 关键字可应用于以下类型的字段:
- 引用类型。
- 指针类型(在不安全的上下文中)。 请注意,虽然指针本身可以是可变的,但是它指向的对象不能是可变的。
换句话说,不能声明“指向可变对象的指针”。 - 简单类型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。
- 具有以下基本类型之一的 enum 类型:byte、sbyte、short、ushort、int 或 uint。
- 已知为引用类型的泛型类型参数。
- IntPtr 和 UIntPtr。
其他类型(包括 double 和 long)无法标记为 volatile,因为对这些类型的字段的读取和写入不能保证是原子的
这篇关于C#关键字 sealed、unsafe、virtual、volatile的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!