0

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

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

4

3 回答 3

4

是的,它有。所有的类sealed,它们不能用作基类。

有关sealed课程的更多信息,请查看此处

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

于 2014-07-08T15:37:02.777 回答
3

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

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

如果你想像这样继承它:

public class CustomString : String { }

你会看到这个错误:

“CustomString”:不能从密封类型“字符串”派生

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

于 2014-07-08T15:38:15.663 回答
1

除了sealed类,static类也不能被继承,见关于。例如: System.Linq.Enumerable

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

这也行不通。

于 2014-07-08T15:45:07.637 回答