我曾经看过一个项目,在根元素处,程序员有像MS.Internal
或Microsoft.*
这样的文件夹。他已经将.net类中的反编译源复制到未标记为密封的类中以修改它们,或者能够访问它们或以其他方式修改它们。
我想知道如果没有针对这种情况的解决方法或者这是否合法,这是常用方法吗?
如果将课程标记为密封且内部应保护我们;那么为什么像BooleanBoxes
或DoubleUtil.IsNaN(double)
这样的类和方法是内部的?它们有利于优化。
答案 0 :(得分:4)
这不是常见的做法,但事实上(非常)不好的做法。根据反编译的代码(工作)的许可,它在版权法方面可能合法也可能不合法。
当应用于类时,sealed
修饰符会阻止其他类继承它。标记为sealed
的类的作者不希望任何人继承它。
您还可以在覆盖基类中的虚方法或属性的方法或属性上使用sealed
修饰符。这使您可以允许类派生自类,并防止它们覆盖特定的虚拟方法或属性。