Skip to main content

Partial Methods in C#

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.

partial method
 


Thank you

 

References

1.      Tutlane

2.      Documentation– Microsoft

3.      Geeks forGeeks


Comments

Popular posts from this blog

Collections in C#

Collections in C# In our previous article , we have learned about how we can use arrays in C#. Arrays in programming are used to group a set of related objects. So one could create an array or a set of Integers, which could be accessed via one variable name. What is Collections in C#? Collections are similar to Arrays, it provides a more flexible way of working with a group of objects. In arrays, you would have noticed that you need to define the number of elements in an array beforehand. This had to be done when the array was declared. But in a collection, you don't need to define the size of the collection beforehand. You can add elements or even remove elements from the collection at any point of time. This article will focus on how we can work with the different collections available in C#. There are three distinct collection types in C#: standard generic concurrent The standard collections are found under the System.Collections. They do not store elemen...

The String.Join Method in C# Explained

The String.Join Method in C#   The string.Join concatenates the elements of a specified array or the members of a collection, using the specified separator between each element or member. Overloads of string.Join Method Description Join(Char, Object[]) Concatenates the string representations of an array of objects, using the specified separator between each member. Join(Char, String[]) Concatenates an array of strings, using the specified separator between each member. Join(String, IEnumerable<String>) Concatenates the members of a constructed IEnumerable<T> collection of type String, using the specified separator between each member. Join(String, Object[]) Concatenates the elements of an object array, using the specified separator between each element. Join(String, String[]) Concatenates all the elements of a string array, usi...

System.IO Namesapce in C#

  System.IO Namesapce in C# A  file  is a collection of data stored in a disk with a specific name and a directory path. When a file is opened for reading or writing, it becomes a  stream . The stream is basically the sequence of bytes passing through the communication path. There are two main streams: the  input stream  and the  output stream . The  input stream  is used for reading data from file (read operation) and the  output stream  is used for writing into the file (write operation). From the above definition of file, the C# provides a namespace that enable us to manipulate file in C# called System.IO.   System.IO  is a  namespace  and it contains a standard IO (input/output) types such as classes , structures , enumerations , and  delegates  to perform a read/write operations on different sources like file, memory, network, etc.   System.IO Classes The table below shows differen...