寫在前面的話
對於建構函式,我們都很熟悉,用於在例項化類的時候,使用new關鍵字,new出乙個例項來供使用。描述那麼對於靜態建構函式,充當的是什麼角色呢,它和非靜態建構函式有什麼區別呢?它又有什麼好處呢?
靜態建構函式用於初始化任何靜態資料(靜態方法裡只能引用靜態字段,靜態建構函式也屬於靜態方法的一種)。特點:靜態構造方法在建立第乙個例項或引用類的靜態變數之前,會自動呼叫靜態建構函式。
1.靜態建構函式沒有修飾符,也沒有引數典型應用:2.靜態構造方法無法繼承,且無法手動呼叫
3.無引數的靜態建構函式可以和無引數的非靜態函式共存(儘管方法前面相同,但是乙個屬於類,乙個屬於例項)
4.如果類中含有帶初始值的靜態成員,那麼編譯器會生成預設的靜態建構函式
當類使用日誌檔案時,可以使用這種建構函式,向其中寫入日誌。示例:
publicclass person
public
string getname()
}
我們來新建乙個student類,讓它繼承自person類,看看getname方法會出現得到什麼呢?publicclass student : person
此時,getname方法獲取的值仍然是 李四。此**等同於:publicclass student : person
}
注意:
如果有子類繼承自帶靜態構造方法的類時,子類必須有空建構函式,否則會報錯。
靜態建構函式
1 靜態建構函式既沒有訪問修飾符,也沒有引數。因為是.net呼叫的,所以像public和private等修飾符就沒有意義了。2 是在建立第乙個類例項或任何靜態成員被引用時,net將自動呼叫靜態建構函式來初始化類,也就是說我們無法直接呼叫靜態建構函式,也就無法控制什麼時候執行靜態建構函式了。3 乙個類...
靜態建構函式
1.類的建構函式有三種 例項建構函式,私有建構函式和靜態建構函式,靜態建構函式只能初始化靜態資料,或執行一次特殊的操作,這種函式只執行一次,在第一次建立類的物件的時候或者呼叫靜態成員時就會自動呼叫它,靜態建構函式沒有訪問修飾符,也沒有任何引數。可以參考一下下面的 using system using...
靜態建構函式
1 如果乙個類沒有定義靜態建構函式,就算它有靜態字段,編譯器也不會自動給這個類生成乙個預設的靜態建構函式。驗證如下 using system using system.collections.generic using system.text namespace teststaticconstruc...