Static class in C#


Objective

This article will discuss about static class in c#. Different feature of static class and different way of creating static class also will be discussed.

Finally one sample will give a hand on of the static class.

Static class is type of classes which cannot be instantiated. Instance of static class cannot be created.

10 Features of Static class

  1. A static class cannot be instantiated
  2. Static class can have only static members.
  3. Member of the Static class can be accessed by class name itself.
  4. Static class is sealed. So static class cannot be inherited.
  5. Static class contains only static constructors.
  6. Static class cannot have instance constructors.
  7. Static class can only be inherited only from object class.
  8. Static class is preceded by keyword static.
  9. Static constructor of static class called only once.
  10. Static class has private constructors.

How CLR deals with static class?

  1. Information of Static class is loaded by CLR, when the Program accessing or referencing Static class is being loaded.
  2. The program referencing static class has no control to specify when static class should be loaded by CLR.
  3. Static class remains in memory for the lifetime of application domain in which program resides.

How to create Static class?

  1. Create a class with keyword Static.
  2. Create a private constructor inside class.
  3. Make all members as static.

Creating a Static class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Staticclass
{
    public static  class MyMath
    {

        public static int Add(int number1, int number2)
        {
            return number1 + number2;
        }

        public static int Sub(int number1, int number2)
        {
            return number1 - number2;
        }
        public static int Mul(int number1, int number2)
        {
            return number1 * number2;
        }
        public static int Div(int number1, int number2)
        {
            return number1 / number2;
        }

    }
}

  1. Class is preceded with keyword Static.
  2. Class is having 4 static methods.
  3. Each method is also preceded by keyword Static.

Using Static class in Program

On adding of reference of Static class, Intellisense will show all the static methods of static class. MyMath is name of the static class.

image1.gif

We do not need to create instance of the class , directly static methods could be called with class name.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Staticclass
{
    class Program
    {
        static void Main(string[] args)
        {

           Console.WriteLine("Sumation= "+ MyMath.Add(7, 2).ToString());
           Console.WriteLine("Substraction = " + MyMath.Sub(7, 2).ToString());
           int mul = MyMath.Mul(7,2);
           Console.WriteLine("Multiply  = " + mul );
           Console.WriteLine("Divison = " + MyMath.Div(7, 2).ToString());
           Console.Read();   

        }
    }
}

Output

image2.gif

Conclusion

In this article, we saw what Static class is and how to work with this class. Thanks for Reading.


More Readings on Static Clases

Constructor vs Static Constructor by Amit Saxena on Oct 24, 2008 New Features of C#2.0 - Static Classes by Prabuvel A on Dec 19, 2005
Constructor vs Static Constructor
.NET Static Variables : Better than Application!

Up Next
    Ebook Download
    View all
    Learn
    View all