靜態建構函式

2022-02-06 19:17:48 字數 990 閱讀 8166

寫在前面的話

對於建構函式,我們都很熟悉,用於在例項化類的時候,使用new關鍵字,new出乙個例項來供使用。

那麼對於靜態建構函式,充當的是什麼角色呢,它和非靜態建構函式有什麼區別呢?它又有什麼好處呢?

描述

靜態建構函式用於初始化任何靜態資料(靜態方法裡只能引用靜態字段,靜態建構函式也屬於靜態方法的一種)。

靜態構造方法在建立第乙個例項或引用類的靜態變數之前,會自動呼叫靜態建構函式。

特點:

1.靜態建構函式沒有修飾符,也沒有引數

2.靜態構造方法無法繼承,且無法手動呼叫

3.無引數的靜態建構函式可以和無引數的非靜態函式共存(儘管方法前面相同,但是乙個屬於類,乙個屬於例項)

4.如果類中含有帶初始值的靜態成員,那麼編譯器會生成預設的靜態建構函式

典型應用:

當類使用日誌檔案時,可以使用這種建構函式,向其中寫入日誌。

示例:

public class person

public string getname()

}

我們來新建乙個student類,讓它繼承自person類,看看getname方法會出現得到什麼呢?

public class student : person

此時,getname方法獲取的值仍然是 李四。此**等同於:
public class 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...