一、靜態成員
1、通過static關鍵字修飾,是屬於類,實例成員屬於對象,在這個類第一次加載的時候,這個類下面的所有靜態成員會被加載。
2、靜態成員只被創建一次,所以靜態成員只有一份,實例成員有多少個對象,就有多少份。
3、類加載的時候,所有的靜態成員就會被創建在“靜態存儲區”裡面,一旦創建直到程序退出,才會被回收。
4、變量需要被共享的時候,方法需要被反復調用的時候,就可以把這些成員定義為靜態成員。
5、在靜態方法中,不能直接調用實例成員,因為靜態方法被調用的時候,對象還有可能不存在。
6、this/base 關鍵字在靜態方法中不能使用,因為有可能對象還不存在。
7、可以創建這個類的對象,制定對象的成員在靜態方法中操作。
8、在實例方法中,可以調用靜態成員,因為這個時候靜態成員肯定存在。
二、靜態成員和實例成員的區別
1、生命周期不一樣。
2、在內存中存儲的位置不一樣。
三、靜態類
1、被static關鍵字修飾的類。
2、靜態類裡面只能聲明靜態成員。
3、靜態類的本質,是一個抽象的密封類,所以不能被繼承,也不能被實例化。
4、如果一個類下面的所有成員,都需要被共享,那麼可以把這個類定義為靜態類。
四、靜態構造函數
1、這個類的成員,第一次被訪問之前,就會執行靜態構造函數。
2、靜態構造函數只被執行一次。
Eg:
i = i = Console.Write( i = Console.Write( Main( Console.Write(Program.i); Program p = Console.Write(Program.i); }
注:以上文章均屬軟謀原創,如需轉載,請注明出處!