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

Classes in C# Explained

C# Class Explained A class is nothing but an encapsulation of properties and methods that are used to represent a real-time entity, as explained by Guru99 . For instance, if you want to work with Guest’s data as in our previous DataDriven Web application . The properties of the Guest would be the Id, GuestName, Address, Phone number etc of the Guest. The methods would include the entry and modification of Guest data. All of these operations can be represented as a class in C# as shown below. using System; namespace CsharpnaijaClassTutorial {     public class Guest     {         public int Id { get ; set ; }         public string GuestName { get ; set ; }         public string Address { get ; set ; }         public string WhomToSee { get ; set ; }     ...

ASP.NET MVC Views

Views in ASP.NET MVC Application explained Find a related article By  Steve Smith  and  Luke Latham from Microsoft Corporation here In the Model-View-Controller (MVC) pattern, the  view  handles the application's data presentation and user interaction. A view is an HTML template with embedded  Razor markup . Razor markup is code that interacts with HTML markup to produce a webpage that's sent to the client. In ASP.NET MVC, views are  .cshtml  files that use the  C# programming language  in Razor markup. Usually, view files are grouped into folders named for each of the application's  controllers . The folders are stored in a  Views  folder at the root of the application as shown: The  Home  controller is represented by a  Home  folder inside the  Views  folder.  The  Home  folder contains the views for the  About ,  Contact , and  Index...

ASP.NET MVC Routing

ASP.NET MVC Routing ASP.NET MVC routing is a pattern matching system that is responsible for mapping incoming browser requests to specified MVC controller actions. When the ASP.NET MVC application launches then the application registers one or more patterns with the framework's route table to tell the routing engine what to do with any requests that matches those patterns. When the routing engine receives a request at runtime, it matches that request's URL against the URL patterns registered with it and gives the response according to a pattern match. Routing pattern is as follows A URL is requested from a browser, the URL is parsed (that is, break into controller and action), the parsed URL is compared to registered route pattern in the framework’s route table, if a route is found, its process and send response to the browser with the required response, otherwise, the HTTP 404 error is send to the browser. Route Properties ASP.NET MVC routes are res...