C# Language Static Classes Static Classes

30% OFF - 9th Anniversary discount on Entity Framework Extensions until December 15 with code: ZZZANNIVERSARY9


The "static" keyword when referring to a class has three effects:

  1. You cannot create an instance of a static class (this even removes the default constructor)
  2. All properties and methods in the class must be static as well.
  3. A static class is a sealed class, meaning it cannot be inherited.

public static class Foo
    //Notice there is no constructor as this cannot be an instance
    public static int Counter { get; set; }
    public static int GetCount()
        return Counter;

public class Program 
    static void Main(string[] args)
        Console.WriteLine(Foo.GetCount()); //this will print 1
        //var foo1 = new Foo(); 
        //this line would break the code as the Foo class does not have a constructor

Got any C# Language Question?