最好的做法是将所有类标记为密封,除非您打算明确继承它们?

ric*_*ard 5 c# oop sealed

将类标记为密封似乎可以获得一些真正的好处:

  1. 某些情况下的性能
  2. 其他特殊情况下的编译时类型安全密封类的显式转换失败
  3. 防止类的意外继承

而且缺点似乎相对较少......您可以在不破坏代码的情况下解封一个类,但是您以后无法在不破坏代码的情况下密封一个已解封的类。

最好的做法是始终将类标记为密封,除非您打算继承它?为什么或者为什么不?

关于这个主题还有其他评论或指导吗?

Roh*_*hit 2

我认为使用 Sealed 类的主要优点之一performance. JIT 编译器可以通过非虚拟调用方法来生成更高效的代码。但是,您可能会认为性能增益取决于所使用的算法。

创建类密封使得不可能继承它并覆盖它的成员,从而形成一个受控的执行环境。然而,另一方面,重写未被设计为被重写的类的成员可能会产生意外的结果

默认情况下,类应该是密封的,但是许多编译器不这样做,我们必须显式地标记它们

参考

漫谈密封的关键字

为什么要使用 Sealed 关键字