靜態建構函式的使用

2021-04-14 22:09:59 字數 679 閱讀 2390

(1)用於對靜態字段、唯讀欄位等的初始化。              

(2)新增static關鍵字,不能新增訪問修飾符,因為靜態建構函式都是私有的。        

(3)類的靜態建構函式在給定應用程式域中至多執行一次:只有建立類的例項或者引用類的任何靜態成員才激發靜態建構函式

(4)靜態建構函式是不可繼承的,而且不能被直接呼叫。            

(5)如果類中包含用來開始執行的 main 方法,則該類的靜態建構函式將在呼叫 main 方法之前執行。    

任何帶有初始值設定項的靜態字段,則在執行該類的靜態建構函式時,先要按照文字順序執行那些初始值設定項。  

(6)如果沒有編寫靜態建構函式,而這時類中包含帶有初始值設定的靜態字段,那麼編譯器會自動生成預設的靜態建構函式。

如下例///

/// class1 的摘要說明。

///

class a

}class b

[stathread]

static void main(string args)}

輸出的結果為12 解釋

在執行main之前 執行了b的構造函書,b的建構函式y=a.x+1;

又執行了a的構造函書x=b.y+1;

y的初始值為0 所以先算出x=1

在出y=2

結果是12

C 靜態建構函式的使用

1 c 靜態建構函式既沒有訪問修飾符,也沒有引數。因為是.net呼叫的,所以像public和private等修飾符就沒有意義了。2 是在建立第乙個類例項或任何靜態成員被引用時,net將自動呼叫靜態建構函式來初始化類,也就是說我們無法直接呼叫靜態建構函式,也就無法控制什麼時候執行靜態建構函式了。3 乙...

靜態建構函式

1 靜態建構函式既沒有訪問修飾符,也沒有引數。因為是.net呼叫的,所以像public和private等修飾符就沒有意義了。2 是在建立第乙個類例項或任何靜態成員被引用時,net將自動呼叫靜態建構函式來初始化類,也就是說我們無法直接呼叫靜態建構函式,也就無法控制什麼時候執行靜態建構函式了。3 乙個類...

靜態建構函式

1.類的建構函式有三種 例項建構函式,私有建構函式和靜態建構函式,靜態建構函式只能初始化靜態資料,或執行一次特殊的操作,這種函式只執行一次,在第一次建立類的物件的時候或者呼叫靜態成員時就會自動呼叫它,靜態建構函式沒有訪問修飾符,也沒有任何引數。可以參考一下下面的 using system using...