Partial Methods in C# Explained
The partial
method is a special type of method which will contain a
declaration part in one partial class and
the definition part in another partial class or
in the same partial class.
Generally, the partial methods will exist either in partial class or struct and
it will contain two main parts one is declaration and definition. Here, the declaration part represents a
signature of the partial method and the definition part
will represent an implementation of the partial method.
In the partial method, the definition part is optional so it may
or may not have an implementation in partial classes.
In case, the implementation part of the partial method is not available in any
partial class, then the compiler will remove the definition of the method and
all the calls related to that particular method in the final class.
Following is the example of implementing a partial method using partial
keyword in two class files, Person1.cs and Person2.cs.
Person1.cs file code snippet
public partial class Person
{
// Partial
Method Declaration
partial void
GetPersonDetails(string name, string location);
public void
TestMethod()
{
Console.WriteLine("Testing partial method in Person1 class");
}
}
From above code, we
declared a partial method called GetPersonDetails in Person1.cs class file using partial
keyword along with normal method called TestMethod().
Person2.cs file code snippet
public partial class Person
{
public Person(string name, string location)
{
GetPersonDetails(name, location);
}
// Partial
Method Implementation
partial void
GetPersonDetails(string name, string location)
{
Console.WriteLine("Name: " + name);
Console.WriteLine("Location: " + location);
}
}
If we observed above
code carefully, we will found an implementation of a partial method called GetPersonDetails in Person1.cs class file using partial
keyword with required variables and constructor.
When we execute the
above code, the compiler will combine these two partial classes into one Person
class like as shown below.
public class Person
{
public Person(string name, string location)
{
GetUserDetails(name, location);
}
public void
TestMethod()
{
Console.WriteLine("Test");
}
private void
GetUserDetails(string name, string location)
{
Console.WriteLine("Name: " + name);
Console.WriteLine("Location: " + location);
}
}
Rules to follow in Implementing Partial Method
We need to follow
certain rules to implement the partial method in our applications.
- In c#, the partial method can
be implemented within partial class or structure only
and the signatures in both parts of the partial type must be the same.
- The partial method declaration
must begin with partial keyword
and method must return void.
- By default, partial methods are
implicitly private so no access modifiers are
allowed and they cannot be virtual.
- Partial methods can have ref but not out parameters.
- Partial methods can be static and generic.
Partial Method Example in C#
Following is the example of defining a
partial method in partial class
using partial
modifier in C#.
using System;
namespace CsharpnaijaTutorial
{
public partial class Person
{
// Partial
Method Declaration
partial void
GetPersonDetails(string name, string location);
}
public partial class Person
{
public Person(string name, string location)
{
GetPersonDetails(name, location);
}
// Partial
Method Implementation
partial void
GetPersonDetails(string name, string location)
{
Console.WriteLine("Name: " + name);
Console.WriteLine("Location: " + location);
}
}
class Program
{
static void Main(string[] args)
{
var person = new Person("Musa Sule", "Abuja");
Console.WriteLine("\nPress Enter Key to Exit..");
Console.ReadLine();
}
}
}
When you execute the
above C# program, we will get the result as shown below.
Thank you
References
1. Tutlane
Comments
Post a Comment