可以在C#中的密封类内部声明密封类或静态类吗

本文关键字:密封类 内部 声明 静态类 | 更新日期: 2023-09-27 17:59:09

这是两个独立的问题:

  1. 标记为密封的类是否可以存在于密封类中
  2. 标记为static的类是否可以存在于密封类中

这些问题只是为了更好地理解核心概念。有人能强调一下上述概念的实际用法吗?

可以在C#中的密封类内部声明密封类或静态类吗

C#支持嵌套类的概念。使用术语"超级类"是不合适的,这意味着嵌套类具有继承关系。根本不存在,"外部阶级"这个词是恰当的。

它只对控制可访问性有用。嵌套类可以访问外部类的私有成员。最有用的是,您可以声明一个嵌套类private,这样它对外部类之外的任何代码都是完全不可见的。一个比默认内部提供的更强的保证。

因此,下面的内容是,声明外部类是密封的对嵌套类没有任何影响。只需尝试即可轻松查看。

是。可以将static class放置在sealed class中。

以下内容完全有效:

public sealed class SealedClass
{
    public static class StaticClass 
    { 
    }
}

反之亦然:

public static class SealedClass
{
    public sealed class StaticClass 
    { 
    }
}

什么是sealed

它们不能被继承。它提高了编译和运行时的性能。

什么是static

它们无法实例化。