繁体   English   中英

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

[英]Can a sealed or static class be declared inside a sealed class in C#?

这是两个独立的问题:

  1. 标记为密封的类可以存在于密封类中吗?
  2. 标记为静态的类可以存在于密封类中吗?

这些问题只是为了更好地理解核心概念。 任何人都可以强调上述概念的实际用法吗?

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

它仅用于控制可访问性。 嵌套类可以访问外部类的私有成员。 最有用的是,您可以将嵌套类声明为私有,这样外部类之外的任何代码都无法看到它。 比默认内部提供的更有力的保证。

所以接下来是声明外部类被密封对嵌套类没有影响。 只需尝试一下,您就可以轻松地看到它。

是的。 您可以将static class放置在sealed class

以下是完全有效的:

public sealed class SealedClass
{
    public static class StaticClass 
    { 

    }
}

反之亦然:

public static class SealedClass
{
    public sealed class StaticClass 
    { 

    }
}

什么是sealed类?

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

什么是static类?

它们不能被实例化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM