Home
Search
C# partial KeywordUse the partial class modifier. Partial classes are spread out among several files.
Partial. Partial classes span multiple files. With the partial keyword in the C# language, you can physically separate a class into multiple files.
Notes, partial. 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.
Class
An example. 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.
Here If you remove the partial modifier, you will get an error at compile time.
Error text The namespace "global namespace" already contains a definition for "A."
Namespace
Tip To fix this, you can either use the partial keyword, or change one of the class names.
C# program that uses partial class
class Program { static void Main() { A.A1(); A.A2(); } }
using System; partial class A { public static void A1() { Console.WriteLine("A1"); } }
using System; partial class A { public static void A2() { Console.WriteLine("A2"); } }
A1 A2
Compiler. 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.
And You will find that the class A is present. Class A will contain the methods A1 and A2 in the same code block.
Class
Thus Partial classes are precisely equivalent to a single class with all the members.
Compiled result of A1.cs and A2.cs: C#
internal class A { // Methods public static void A1() { Console.WriteLine("A1"); } public static void A2() { Console.WriteLine("A2"); } }
A review. 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.
Some uses. 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.
Home
© 2007-2021 sam allen. see site info on the changelog