将部分类拆分为单独的文件

时间:2016-01-08 10:02:18

标签: .net visual-studio partial-classes

我有一个非常基本的问题。在Visual Studio项目中,我找到了两个名为 Startup 的分部类。这些类位于不同的文件中。

enter image description here

如果单击第一个方法(ConfigureAuth),它将出现在类文件“Startup.Auth.cs”中。第二个文件出现在类文件“Startup.cs”中。我该如何组织这样的课程?

1 个答案:

答案 0 :(得分:2)

您可以在C#中使用部分类将大类拆分为多个文件。重构一个大班级往往更好,但有一些合理的理由要有大班。

部分类的另一个用途是允许手动修改代码生成的类。生成的代码部分属于一个文件,而手动更改则保存在单独的文件中。在您的情况下,有一个Startup类是根据处理启动的单独部分的单独源文件构建的。其中一些文件可以通过NuGet包添加,并且使用部分类可以大大简化应用程序中包含的不同功能。

使用partial将一个类拆分为多个源文件非常简单:

假设您在源文件MyClass.cs中实现了一个类:

class MyClass {

  public void MethodA() { ... }

  public void MethodB() { ... }

}

然后,您可以将其拆分为两个源文件。 MyClass.A.cs

partial class MyClass {

  public void MethodA() { ... }

}

MyClass.B.cs

partial class MyClass {

  public void MethodB() { ... }

}

因此,通过将类标记为partial,您可以跨多个class构造实例传播类的内容。在编译期间,编译器会将它们全部合并到一个class定义中。

您可以在MSDN上学习the details about partial classes