分部类相对于继承的优势是什么?

本文关键字:是什么 继承 相对于 | 更新日期: 2023-09-27 18:19:11

c#有分部类的概念。我见过的一个例子是在WSDL s中使用的。Visual Studio可以联系服务器来查找服务,并根据它自动生成一个部分类。然后,Visual studio将为您提供一个空白的部分类来匹配它,以便您可以添加自己的代码。

我觉得这种方法很混乱。与继承相比,分部类有什么优势吗?

分部类相对于继承的优势是什么?

部分类的存在是为了解决一个特定的问题——解决分离生成代码和手工编程代码的问题。如果没有部分类,程序员需要避免修改生成的类,或者依赖设计模式来实现分离。

非常重要的一点是,部分类的生成部分具有实现。这将它们与不包含实现的接口区分开来。

在某种意义上,这使它们类似于抽象类,但没有使它们抽象。
您可以扩展和更改功能,而无需子类化它。

部分类:
可以在同一个项目的多个文件中定义一个类。您最终可能会创建一个包含方法的文件,另一个包含属性的文件,等等。在编译时,它将与创建一个包含所有内容的大文件相同。

阅读更多关于分部类和方法的信息

继承:


您可以在同一项目中或在另一个项目中扩展现有类的功能。通过继承,您可以将现有类的功能、特性等扩展到新类上。

商定的部分类更多的是将类定义拆分到多个源文件中,而不是继承。

在我看来,它们的主要原因是框架可以为你生成样板代码,你也可以添加方法,而不会被visual studio为数据访问或web服务生成而创建的东西覆盖。

在我看来,微软总是固执而懒惰。

这是对开发人员的一个邀请,如果需要,可以在分部类的第二个声明中实现方法通过压缩大型类,可以更好地维护应用程序。假设您有一个具有多个接口的类,因此您可以根据接口实现创建多个源文件。很容易理解和维护一个接口,在这个接口上源文件有一个部分类。让我们看看下面的代码片段。

  public interface IRegister
  {
//Register related function
  }
  public interface ILogin
  {
//Login related function
  }
  //UserRegister.cs file
 public partial classUser : IRegister, ILogin
  {
//implements IRegister interface
  } 
 //UserLogin.cs file
 public partial classUser
 {
//implements ILogin interface
 }