在什么条件下有一个“部分类?”是好的?

时间:2009-12-02 14:57:18

标签: c# partial-classes

什么时候将您的班级分成两个.cs并将其作为一个部分班级?

是否有迹象显示是时候进行部分课程了?

谢谢!

4 个答案:

答案 0 :(得分:17)

当您必须自动生成这些类的一部分并手动编写类的其余内容时。

这样您就可以将机器生成的内容放在一个文件中,并将手动编码的代码放在另一个文件中。这样做的好处是,当您必须重新生成源代码时,您的手工编码部分将不会被删除。

这就是MS为其GUI设计者生成类内容的方式(想想那些*.designer.cs文件),并允许您将逻辑的内容放在其他相关文件中(*.cs

答案 1 :(得分:6)

像其他人说的那样,自动生成代码是一个很好的理由。当我想在自己的文件中放置一个嵌套类时,我也会使用partial class。

public partial class MyClass
{
    private class NestedClass
    {
        ...
    }
}

另外,有一个小技巧可以在解决方案资源管理器中嵌套文件(像winform一样并嵌套Form1.designer.cs文件)。

<Compile Include="Foo.1.cs">
  <DependentUpon>Foo.cs</DependentUpon>
</Compile>

Nesting file in Visual Studio

答案 2 :(得分:5)

如果您要扩展自动生成的代码,则部分类是一种很好的方法。

例如,将LINQ扩展为生成的SQL类。

答案 3 :(得分:3)

假设您在一个地方拥有事件处理程序和其他GUI代码,并希望将其他非GUI相关代码保存在一个位置。 MVC模式在C#中并不容易。