【问题标题】:What is the significance of a sealed partial class?密封的部分类有什么意义?
【发布时间】:2016-01-17 01:28:23
【问题描述】:

在 C# 中,密封分部类的意义是什么?

Sealed 类是不能被继承的类。

部分类是可以在 2 个或更多源文件之间拆分的类。

那么为什么“密封的部分类”有什么意义呢?

【问题讨论】:

  • 部分和密封无关。部分存在主要是为了有利于代码生成场景。 Sealed 的存在是为了防止继承,因为应该专门设计一个类来支持继承。因此,我可能拥有由工具生成的类的一部分,并且我可能还希望将其密封,因为它不是为继承而设计的。

标签: c# partial-classes sealed


【解决方案1】:

部分类基本上只是语法糖,您可以在同一个程序集中的两个不同文件中定义一个类。这在生成类的一部分时很有用,例如使用 Entity Framework DB first 方法。 它与继承无关。

密封类是不能被继承的类。如果从某个类继承可能会破坏它,您可以将其密封,但您需要在您自己的代码之外访问它。

这两个关键字之间没有关系。密封的部分类只是一个类,可以在更多文件中定义,并且不能被继承。

【讨论】:

    【解决方案2】:

    部分类允许我们在一个项目中跨多个文件编写一个类。 Partial 表示类的部分可以在命名空间中定义,并且所有部分都必须与 partial 关键字一起使用。如果任何部分被声明为密封,则整个类型都被认为是密封的。

    【讨论】:

      【解决方案3】:

      密封的部分类主要用于具有大量 LOC 的类,不应该被继承。

      部分密封在一起并不意味着重要的事情,正如您已经提到的,两者都用于不同的目的。

      【讨论】:

        【解决方案4】:

        这两个关键字没有关系。

        只是一个不想被继承的类碰巧被拆分了。

        你可以只有封印或只有分裂或两者兼而有之。这仅取决于您希望行为如何。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-11-05
          • 2021-01-06
          • 1970-01-01
          • 1970-01-01
          • 2017-11-28
          • 2021-11-12
          • 2014-12-27
          • 1970-01-01
          相关资源
          最近更新 更多