靜態變量使用 static 修飾符進行聲明,在類被實例化時創建,通過類進行訪問
不帶有 static 修飾符聲明的變量稱做非靜態變量,在對象被實例化時創建,通過對象進行訪問
一個類的所有實例的同一靜態變量都是同一個值,同一個類的不同實例的同一非靜態變量可以是不同的值
靜態函數的實現里不能使用非靜態成員,如非靜態變量、非靜態函數等
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
namespaceExample01
{
classProgram
{
classClass1
{
publicstaticString staticStr ="Class";
publicString notstaticStr ="Obj";
}
staticvoidMain(string[] args)
{
//靜態變量通過類進行訪問,該類所有實例的同一靜態變量都是同一個值
Console.WriteLine("Class1's staticStr: {0}", Class1.staticStr);
Class1 tmpObj1 =newClass1();
tmpObj1.notstaticStr ="tmpObj1";
Class1 tmpObj2 =newClass1();
tmpObj2.notstaticStr ="tmpObj2";
//非靜態變量通過對象進行訪問,不同對象的同一非靜態變量可以有不同的值
Console.WriteLine("tmpObj1's notstaticStr: {0}", tmpObj1.notstaticStr);
Console.WriteLine("tmpObj2's notstaticStr: {0}", tmpObj2.notstaticStr);
Console.ReadLine();
}
}
}
結果:
Class1's staticStr: Class
tmpObj1's notstaticStr: tmpObj1
tmpObj2's notstaticStr: tmpObj2