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

时间:2014-04-20 11:12:54

标签: c# sealed

这是两个不同的问题:

  1. 标记为密封的类是否可以存在于密封类中?
  2. 标记为 static 的类是否可以存在于密封类中?
  3. 这些问题只是为了更好地理解核心概念。任何人都可以强调上述概念的实际用法吗?

2 个答案:

答案 0 :(得分:3)

C#支持嵌套类的概念。使用术语“超类”是不合适的,这意味着嵌套类具有继承关系。没有任何一个,“外类”一词是恰当的。

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

接下来是声明外部类被密封对嵌套类没有任何影响。通过试验很容易看到自己。

答案 1 :(得分:0)

是。您可以在static class内放置sealed class

以下内容完全有效:

public sealed class SealedClass
{
    public static class StaticClass 
    { 

    }
}

反之亦然:

public static class SealedClass
{
    public sealed class StaticClass 
    { 

    }
}

什么是sealed类?

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

什么是static类?

它们无法实例化。