.Net本身是否有不能继承的类?

时间:2014-07-08 15:36:17

标签: c# inheritance sealed

我很想知道c#中是否有任何样本。我想不出一个样本禁止继承而不是一些商业意图,所以我想知道c#本身的一些真实世界的例子。

我知道密封类,我只是在c#中寻找一些例子,而不是隐式密封的值类型和结构。

3 个答案:

答案 0 :(得分:4)

是的。所有sealed的类都不能用作基类。

有关sealed课程的详情,请查看here

.NET中sealed类的一些示例如下:

答案 1 :(得分:3)

您不能从任何结构,sealed类或static类继承。 C#还禁止使用多种“特殊”类型,包括DelegateEnum,因为它提供了使用这些类型的其他构造。

我想到的最明显的例子是System.String

如果你试图像这样继承它:

public class CustomString : String { }

你会看到这个错误:

  

'CustomString':无法从密封类型'string'

派生

.Net框架中有许多其他示例。我使用反射进行了快速比较,仅在mscorlib(v4.0)中就有856个密封公共类型,而619个非密封公共类型(包括接口)。

答案 2 :(得分:1)

sealed课程外,static课程也不能继承,请参阅about。例如:System.Linq.Enumerable

public static class Inherited : System.Linq.Enumerable
{
}

这也不行。