靜態關鍵字
static 關鍵字意味著兩件事:
- 此值不會在物件之間發生變化,而是在整個類中發生變化
- 靜態屬性和方法不需要例項。
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
}
}