C# 从.net库复制代码是一种常见做法吗?

C# 从.net库复制代码是一种常见做法吗?,c#,.net,C#,.net,我曾经看到一个项目,其中程序员在根元素上有类似MS.Internal或Microsoft.*的文件夹。他从未标记为密封的类中的.net类复制了反编译的源代码,以修改它们,或者能够访问它们,或者以其他方式修改它们 我想知道如果这种情况没有解决办法,这是否是常见的方法,或者这是否合法 如果将类别标记为密封和内部,则应保护我们;那么为什么像booleanboxs或DoubleUtil.IsNaN(double)这样的类和方法是内部的呢?它们有利于优化。这不是常见的做法,但事实上(非常)糟糕的做法。根据

我曾经看到一个项目,其中程序员在根元素上有类似
MS.Internal
Microsoft.*
的文件夹。他从未标记为密封的类中的.net类复制了反编译的源代码,以修改它们,或者能够访问它们,或者以其他方式修改它们

我想知道如果这种情况没有解决办法,这是否是常见的方法,或者这是否合法


如果将类别标记为密封和内部,则应保护我们;那么为什么像
booleanboxs
DoubleUtil.IsNaN(double)
这样的类和方法是内部的呢?它们有利于优化。

这不是常见的做法,但事实上(非常)糟糕的做法。根据反编译代码(作品)的许可证,它在版权法方面可能合法,也可能不合法

当应用于类时,
sealed
修饰符会阻止其他类从该类继承。标记为
sealed
的类的作者不希望任何人从中继承


还可以对重写基类中的虚拟方法或属性的方法或属性使用
sealed
修饰符。这使您能够允许类从类派生,并防止它们重写特定的虚拟方法或属性。

这不是常见做法,但实际上(非常)不好的做法。根据反编译代码(作品)的许可证,它在版权法方面可能合法,也可能不合法

当应用于类时,
sealed
修饰符会阻止其他类从该类继承。标记为
sealed
的类的作者不希望任何人从中继承


还可以对重写基类中的虚拟方法或属性的方法或属性使用
sealed
修饰符。这使您能够允许类从您的类派生,并防止它们重写特定的虚拟方法或属性。

什么可能使某人这样做?就那件事而言。。他们复制了多少代码到它自己的文件夹结构中?这是一种多么奇怪的做法……如果不评论这样做的合法性,我会说这是非常罕见的。如果一个人需要对一个
密封的
类进行子类化,那么很可能是你做了一些错误的事情。他可能是在将代码从WPF移植到Silverlight,或者是从WPF移植到Silverlight,并想添加缺少的东西吗?有什么可能让他这样做呢?就那件事而言。。他们复制了多少代码到它自己的文件夹结构中?这是一种多么奇怪的做法……如果不评论这样做的合法性,我会说这是非常罕见的。如果一个人需要对一个
密封的
类进行子类化,那么很可能你做得不正确。他可能是在将代码从WPF移植到Silverlight,或者是从WPF移植到Silverlight,并想添加缺少的东西?