3

C# 有部分类的概念。我见过的一个例子是在WSDLs 中。Visual Studio 可以联系服务器以查找服务,并根据它自动生成分部类。Visual Studios 会为你提供一个空白的部分类来匹配它,以便你可以添加自己的代码。

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

4

4 回答 4

6

部分类用于解决特定问题 - 解决分离生成代码和手动编程代码的问题。如果没有部分类,程序员将需要避免修改生成的类,或者依赖设计模式来实现分离。

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

从某种意义上说,这使它们类似于抽象类,而不使它们抽象。您可以在不继承它的情况下扩展和更改功能。

于 2014-08-24T02:43:12.530 回答
1

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

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

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

于 2014-08-24T02:40:05.627 回答
0

同意的部分类更多地是关于在多个源文件之间拆分类定义而不是继承。

在我看来,它们的主要原因是框架可以为您生成样板代码,并且您还可以添加方法,而您的代码不会被 Visual Studio 为数据访问或 Web 服务生成创建的东西覆盖。

对我来说,微软似乎总是头脑不清醒和懒惰。

于 2014-08-24T02:45:24.027 回答
0

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

  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
 }
于 2014-08-24T03:37:29.890 回答