什么类型的类不能在.NET中继承?

Roh*_*ews 1 .net c# inheritance

什么类型的课不能继承?为什么以及如何做到这一点?请举例说明.

还有什么可能的方法来防止派生类?

Jar*_*ver 6

无法继承使用sealed(C#)或NotInheritable(VB.NET)关键字标记的类.这是在类的定义中完成的.最常用的密封类是System.String.


Mik*_*ray 5

显然,sealed关键字可以防止任何人从类型派生.但您也可以通过更改构造函数的可见性来控制谁可以从您的类派生.如果声明所有构造函数内部(包括默认值),那么只能导出同一程序集中的其他类.如果您将它们声明为私有(同样,包括默认值),那么只有类中的嵌套类才能实现.

有一些特殊情况,如System.DelegateSystem.ValueType,它们具有公开可见的构造函数,但您无法从它们派生.