Static Class and Methods in C#
Static Class and Methods in C#
A static class is never instantiated. The static keyword on a class enforces that a type not be created with a constructor. In the static class, we access members directly on the type. A static class cannot have non-static members. All methods, fields and properties in it must also be static.
Example
To start, there are two classes in this program: the Program class, which is not static, and the ABC class, which is static. You cannot create a new instance of ABC using a constructor. Trying to do so results in an error.
Inside the ABC class, we use the static modifier on all fields and methods. Instance members cannot be contained in a static class.
using System;
class Program
{
static void Main()
{
// Cannot declare a variable of type ABC.
// This won't blend.
// ABC abc= new ABC ();
{
static void Main()
{
// Cannot declare a variable of type ABC.
// This won't blend.
// ABC abc= new ABC ();
// Program is a regular class so you can create it.
Program program = new Program();
Program program = new Program();
// You can call static methods inside a static class.
ABC._ok = true;
ABC.Blend();
}
}
ABC._ok = true;
ABC.Blend();
}
}
static class ABC
{
// Cannot declare instance members in a static class!
// int _test;
{
// Cannot declare instance members in a static class!
// int _test;
// This is ok.
public static bool _ok;
public static bool _ok;
// Can only have static methods in static classes.
public static void Blend()
{
Console.WriteLine("Blended");
}
}
public static void Blend()
{
Console.WriteLine("Blended");
}
}
Output
Blended