Skip to main content

Partial class in C#

Partial class in C# Explained

partial class is useful to split the functionality of a particular class into multiple class files and all these files will be combined into one single class file when the application is compiled.

 

While working on large scale projects, multiple developers want to work on the same class file at the same time. To solve this problem, C# provides an ability to spread the functionality of a particular class into multiple class files using partial keyword.

          

In C#, we can use partial keyword to split the definition of a particular classstructureinterface or a method over two or more source files.

 

Following is the example of splitting the definition of Person class into two class files, Person1.cs and Person2.cs.

 

First file (Person1.cs)

    public partial class Person

    {

        private string Name;

        private string Location;

        public Person(string name, string location)

        {

            Name =name;

            Location = location;

        }

    }

 

From above sample code, we created a partial class called Person in Person1.cs class file using partial keyword with required variables and constructor.

 

Second File (Person2.cs)

 

    public partial class Person

    {

        public void GetPersonDetails()

        {

            Console.WriteLine("Name: " + Name);

            Console.WriteLine("Location: " + Location);

        }

    }

If you observed from the above code, we created a partial class called Person in Person2.cs class file using partial keyword with GetPersonDetails() method.

 

When we execute the above code, the compiler will combine these two partial classes into one Person class as shown below.

 

    public class Person

    {

        private string Name;

        private string Location;

        public Person(string name, string location)

        {

            Name = name;

            Location = location;

        }

        public void GetPersonDetails()

        {

            Console.WriteLine("Name: " + Name);

            Console.WriteLine("Location: " + Location);

        }

    }

 

This is how the compiler will combine all the partial classes into single class while executing the application in C#.

 

Rules to Implement Partial Class

In C#, we need to follow certain rules to implement a partial class in our applications.

·        To split the functionality of classstructureinterface or a method over multiple files we need to use partial keyword and all files must be available at compile time to form the final type.

  • The partial modifier can only appear immediately before the keywords classstruct or interface.
  • All parts of partial type definitions must be in the same namespace or assembly.
  • All parts of partial type definitions must have the same accessibility, such as publicprivate, etc.
  • If any partial part is declared as abstractsealed or base, then the whole type is considered as abstract or sealed or base based on the defined type.
  • In C#, different parts can have different base types but the final type will inherit all the base types.
  • Nested partial types are allowed in partial type definitions.

Partial Class Example in C#

The following code is an example of defining partial classes using partial keyword in C# language.

 

using System;

namespace CsharpnaijaTutorial

{

    public partial class Person

    {

        private string Name;

        private string Location;

        public Person(string name, string location)

        {

            this.Name = name;

            this.Location = location;

        }

    }

    public partial class Person

    {

        public void GetPersonDetails()

        {

            Console.WriteLine("Name: " + Name);

            Console.WriteLine("Location: " + Location);

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            Person person = new Person("Musa Sule", "Abuja");

            person.GetPersonDetails();

            Console.WriteLine("\nPress Enter Key to Exit..");

            Console.ReadLine();

        }

    }

}

 

 

When you run the above C# program, we will get the result as shown below.


 

Thank you

 

References

1.       Tutlane

Geeksforgeeks

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...