![4 13 密封类sealed Class](https://i.ytimg.com/vi/dNWuxP_PU2w/hqdefault.jpg)
内容
- 定义-密封等级是什么意思?
- Microsoft Azure和Microsoft Cloud简介在本指南中,您将了解什么是云计算,以及Microsoft Azure如何帮助您从云迁移和运行业务。
- 技术百科解释了密封课程
定义-密封等级是什么意思?
在C#中,密封类是不能被任何类继承但可以实例化的类。
密封类的设计意图是指示该类是专门的,并且无需扩展它以通过继承提供任何其他功能来覆盖其行为。密封类通常用于封装需要在整个程序中使用但无需对其进行任何更改的逻辑。
出于安全原因,密封类主要是通过防止意外派生而使用的,因为派生类可能会破坏密封类中提供的实现,而这种意外派生可能会破坏该类。由于密封类无法形成基类,因此对密封类的调用会稍快一些,因为它们可以实现某些运行时优化,例如将密封类实例上的虚拟成员函数调用为非虚拟调用。密封类在将类从密封类型更改为未密封时不会破坏兼容性,从而有助于版本控制。
.NET框架库中的某些关键类被设计为密封类,主要是为了限制这些类的可扩展性。
Microsoft Azure和Microsoft Cloud简介在本指南中,您将了解什么是云计算,以及Microsoft Azure如何帮助您从云迁移和运行业务。
技术百科解释了密封课程
与隐式密封的结构不同,密封类使用关键字“密封”声明,以防止意外继承该类。密封类只有在具有公共级别可访问性的方法时才有用。密封类不能是抽象类,因为抽象类打算由提供抽象方法和属性实现的另一个类派生。
例如,一个密封的类DatabaseHelper可以设计为具有属性和方法,这些属性和方法可以服务与数据库有关的操作的功能,包括打开和关闭数据库的连接,获取和更新数据等。因为它执行了应该执行的关键功能可以通过在派生类中重写而不被篡改,将其设计为密封类。
- 该类是静态的
- 该类包含代表敏感信息的继承成员
- 查询类以通过反射方法检索其属性
- 该类继承了许多需要密封的虚拟成员