Partial classes span multiple files. With the partial keyword in the C# language, you can physically separate a class
into multiple files.
This keyword is often used by code generators (like Visual Studio). But we can sometimes benefit from directly using partial on a C# class
declaration.
Normally you cannot declare a class
in 2 separate files. But with the partial modifier, you can. This is useful if one file is commonly edited and the other is not.
class
names.class Program { static void Main() { A.A1(); A.A2(); } }// A1.cs using System; partial class A { public static void A1() { Console.WriteLine("A1"); } }// A2.cs using System; partial class A { public static void A2() { Console.WriteLine("A2"); } }A1 A2
How does the C# compiler deal with partial classes? If you disassemble the above program, you will see that the files A1.cs
and A2.cs
are eliminated.
class
A is present. Class
A will contain the methods A1 and A2 in the same code block.class
with all the members.internal class A { // Methods public static void A1() { Console.WriteLine("A1"); } public static void A2() { Console.WriteLine("A2"); } }
Partial classes can simplify certain situations. They are often used in Visual Studio when creating Windows Forms programs. The machine-generated C# code is separate.
Partial classes separate commonly-edited code from rarely-edited code. This can reduce confusion and the possibility that code that isn't supposed to be edited is changed.