0% found this document useful (0 votes)
68 views3 pages

Partial Classes and Methods

Partial classes allow a class to be split across multiple code files. The compiler combines the code files. Partial methods allow a method signature to be declared in one file and implemented in another, with the implementation being optional. This allows code to be organized across multiple files and for optional logic to be implemented without breaking the build if the implementation is omitted.

Uploaded by

Monti Saini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views3 pages

Partial Classes and Methods

Partial classes allow a class to be split across multiple code files. The compiler combines the code files. Partial methods allow a method signature to be declared in one file and implemented in another, with the implementation being optional. This allows code to be organized across multiple files and for optional logic to be implemented without breaking the build if the implementation is omitted.

Uploaded by

Monti Saini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Partial Classes and Methods

In C#, you can split the implementation of a class, a struct, a


method, or an interface in multiple .cs files using the partial keyword.
The compiler will combine all the implementation from
multiple .cs files when the program is compiled.

Consider the following EmployeeProps.cs and EmployeeMethods.cs files that


contain the Employee class.

EmployeeProps.cs
public partial class Employee
{
public int EmpId { get; set; }
public string Name { get; set; }
}
EmployeeMethods.cs
public partial class Employee
{
//constructor
public Employee(int id, string name){
this.EmpId = id;
this.Name = name;
}

public void DisplayEmpInfo() {


Console.WriteLine(this.EmpId + " " this.Name);
}
}

Example: Combined Class


public class Employee
{
public int EmpId { get; set; }
public string Name { get; set; }

public Employee(int id, string name){


this.EmpId = id;
this.Name = name;
}
public void DisplayEmpInfo(){
Console.WriteLine(this.EmpId + " " this.Name );
}
}

Rules for Partial Classes


 All the partial class definitions must be in the same assembly and
namespace.
 All the parts must have the same accessibility like public or
private, etc.
 If any part is declared abstract, sealed or base type then the
whole class is declared of the same type.
 Different parts can have different base types and so the final
class will inherit all the base types.
 The Partial modifier can only appear immediately before the
keywords class, struct, or interface.
 Nested partial types are allowed.

Partial Methods
Partial classes or structs can contain a method that split into two
separate .cs files of the partial class or struct. One of the
two .cs files must contain a signature of the method, and other file
can contain an optional implementation of the partial method. Both
declaration and implementation of a method must have
the partial keyword.
EmployeeProps.cs
public partial class Employee
{
public Employee() {
GenerateEmpId();
}
public int EmpId { get; set; }
public string Name { get; set; }

partial void GenerateEmployeeId();

}
EmployeeMethods.cs
public partial class Employee
{
partial void GenerateEmployeeId()
{
this.EmpId = random();
}
}
Above, EmployeeProps.cs contains the declaration of the partial
method GenerateEmployeeId() which is being used in the
constructor. EmployeeMethods.cs contains the implementation of
the GenerateEmployeeId() method. Creates an object
the Employee class which used the partial method.
EmployeeMethods.cs
class Program
{
static void Main(string[] args)
{
var emp = new Employee();
Console.WriteLine(emp.EmpId); // prints genereted id

Console.ReadLine();
}
}

Rules for Partial Methods


 Partial methods must use the partial keyword and must
return void.
 Partial methods can have in or ref but not out parameters.
 Partial methods are implicitly private methods, so cannot be
virtual.
 Partial methods can be static methods.
 Partial methods can be generic.

You might also like