Lou*_*ann 90
在实现安全功能的类上,使原始对象不能"模拟".
更一般地说,我最近与微软的一位人士进行了交流,他告诉我他们试图将继承权限制在真正有意义的地方,因为如果不加以处理,性能会变得昂贵.
sealed关键字告诉CLR没有进一步的类来寻找方法,这会加快速度.
在当今市场上大多数性能增强工具中,您会找到一个复选框,它将密封所有未继承的类.
但要小心,因为如果你想通过MEF允许插件或程序集发现,你会遇到问题.
Pet*_*erg 14
狒狒的优秀答案附录:
在相关说明中,仅适用于未密封的类:创建的任何方法virtual都是扩展点,或者至少看起来应该是扩展点.声明方法也virtual应该是一个有意识的决定.(在C#中,这是一个有意识的决定;在Java中,它不是.)
编辑:一些相关链接:
另请注意,Kotlin默认密封课程; 它的open关键字与Java final或sealedC#相反.(可以肯定的是,没有普遍认为这是一件好事.)