我很想知道c#中是否有任何样本。我想不出一个样本禁止继承而不是一些商业意图,所以我想知道c#本身的一些真实世界的例子。
我知道密封类,我只是在c#中寻找一些例子,而不是隐式密封的值类型和结构。
答案 0 :(得分:4)
答案 1 :(得分:3)
您不能从任何结构,sealed
类或static
类继承。 C#还禁止使用多种“特殊”类型,包括Delegate
和Enum
,因为它提供了使用这些类型的其他构造。
我想到的最明显的例子是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
{
}
这也不行。