我有一个非常基本的问题。在Visual Studio项目中,我找到了两个名为 Startup 的分部类。这些类位于不同的文件中。
如果单击第一个方法(ConfigureAuth),它将出现在类文件“Startup.Auth.cs”中。第二个文件出现在类文件“Startup.cs”中。我该如何组织这样的课程?
答案 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。