pencilCake
pencilCake

Reputation: 53323

Under what conditions it is good to have a "partial class?"

When does it become a good idea to have your class separate into two .cs and have it as a partial class?

Are there some signs showing that it is time to go with partial class?

Thanks!

Upvotes: 6

Views: 351

Answers (4)

Jeff Cyr
Jeff Cyr

Reputation: 4864

Like the others said, auto-generated code is a good reason. I also use partial class sometimes when I want to put a nested class in its own file.

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

Plus there is this little trick to nest a file in the solution explorer (to do like winform and nest the Form1.designer.cs file).

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

Nesting file in Visual Studio

Upvotes: 6

Priyank Bolia
Priyank Bolia

Reputation: 14449

Lets say you have event handlers and other GUI code in one place, and want to keep other non GUI related code in one place. The MVC pattern which is not easy in C#.

Upvotes: 3

Dan
Dan

Reputation: 17445

If you have auto-generated code you want to extend, a partial class is a great way to do that.

For example, extending LINQ to SQL classes that get generated.

Upvotes: 5

Graviton
Graviton

Reputation: 83316

When you have to autogenerate a portion of those classes and manually write the rest of the content of the classes.

This is so that you can put the machine-generated content in one file and hand-coded code in another file. The advantage of doing so is that when you have to regenerate the source code, your hand-coded portion won't get wiped out.

This is how MS generates class content for its GUI designers ( think of those *.designer.cs file), and allows you to put the meat of your logic in other related file ( *.cs)

Upvotes: 17

Related Questions