在C#代碼中,加上Static一般就表示的是該變量或方法是靜態的。其實除了變量和方法,Static還可以修飾類,一下我們了解一下,被Static修飾的各個成員的特點。
靜態成員變量
- 使用static關鍵字修飾的成員變量
- 靜態成員變量是屬於類的,類被加載時初始化,且只有一份。(實例成員變量屬於對象,在每個對象被創建時初始化,每個對象一份)
- 存在優先於對象,被所有對象共享,常駐內存。
先看下使用實例訪問靜態成員變量:
使用類名訪問成員變量:
靜態構造函數
- 初始化類的靜態成員變量
- 僅在類被加載時執行一次
- 不允許使用訪問修飾符
使用訪問修飾符
初始化靜態成員變量
靜態方法
- 通過調用實例方法時,會隱式的傳遞對象引用以便在方法內部可以正確訪問該對象成員變量
- 通過類名調用靜態方法時,因為沒有具體對象,所以在static方法中不能訪問實例成員
靜態類
- 使用static關鍵字修飾的類
- 不能實例化,只能包含靜態成員
- 靜態能不能被繼承,但是靜態方法,屬性可以被繼承
實例成員通過引用(對象)調用,靜態成員通過類名調用。
當出現類名時,類被加載,靜態成員就已經存在了。
實例代碼塊,可以訪問實例成員,也可以訪問靜態成員。