c#程序剛開始啟動的時(shí)候都會有唯一一個(gè)入口函數(shù)main()函數(shù)值戳,而非靜態(tài)成員又稱實(shí)例成員,必須作用于實(shí)例。在程序剛開始運(yùn)行的時(shí)候,未建立任何實(shí)例他嫡,因此無法調(diào)用實(shí)例成員澳窑,包括非靜態(tài)的Main方法。為了能夠在程序的開始執(zhí)行Main方法可很,必須將其聲明為靜態(tài)。
順便說明,在Main方法中調(diào)用的成員也必須是靜態(tài)的赦政,除非建立過相應(yīng)的實(shí)例。
例如:
namespace lover_P.Test
{
public class Test
{
public void InstanceMethod() {} // 實(shí)例成員(非靜態(tài))
public static void StaticMethod {} // 類型成員(靜態(tài))
public static void Main()
{
InstanceMethod(); // 錯(cuò)誤!調(diào)用了實(shí)例成員恢着,而此時(shí)并沒有建立實(shí)例
StaticMethod(); // 正確桐愉!可以調(diào)用靜態(tài)成員
Test SomeTest = new Test(); // 建立本類型的一個(gè)實(shí)例
SomeTest.InstanceMethod(); // 再在這個(gè)實(shí)例上調(diào)用實(shí)例成員就對了
SomeTest.StaticMethod(); // 附加一句,在實(shí)例上調(diào)用靜態(tài)成員也是錯(cuò)誤的掰派!
}
}
}