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

Split partial classes into separate files

我有一个非常基本的问题。在一个 Visual Studio 项目中,我发现了两个名为 Startup 的部分 classes。 classes 在不同的文件中。

如果我单击第一个方法 (ConfigureAuth),它会出现在 class 文件 "Startup.Auth.cs" 中。第二个文件出现在 class 文件 "Startup.cs" 中。我怎样才能像这样组织 classes?

您可以在 C# 中使用部分 classes 将一个大的 class 拆分为多个文件。重构大 class 通常更好,但有一些合理的理由需要大 class。

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

使用partial:

将一个class分割成几个源文件非常简单

假设您在源文件 MyClass.cs:

中实现了 class
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() { ... }

}

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

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