Static keyword C# with Example
The static keyword means 2 things: 1. This value does not change from object to object but rather changes on a class as a whole 2. Static properties and methods don't require an instance. public class Foo { public Foo{ Counter++; NonStaticCounter++; } public static int Counter { get; set; } public int NonStaticCounter { get; set; } } public class Program { static void Main(string[] args) { //Create an instance var foo1 = new Foo(); Console.WriteLine(foo1.NonStaticCounter); //this will print "1" //Notice this next call doesn't access the instance but calls by the class name. Console.WriteLine(Foo.Counter); //this will also print "1" //Create a second instance var foo2 = new Foo(); Console.WriteLine(foo2.NonStaticCounter); //this will print "1" Console.WriteLine(Foo.Counter); //this will now print "2" //The static property incremented on both instances and can persist for the whole class } }