分部类相对于继承的优势是什么?
本文关键字:是什么 继承 相对于 | 更新日期: 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
}