一. 靜態(tài)類
特點(diǎn):
- 只包含靜態(tài)成員。
- 無法進(jìn)行實(shí)例化。
- 會(huì)進(jìn)行密封。
- 不能包含實(shí)例構(gòu)造函數(shù)。
注意:
- 程序中首次引用類之前初始化其字段并調(diào)用其靜態(tài)構(gòu)造函數(shù)。 靜態(tài)構(gòu)造函數(shù)只調(diào)用一次,在程序所駐留的應(yīng)用程序域的生存期內(nèi),靜態(tài)類會(huì)保留在內(nèi)存中。
- 使用靜態(tài)類的優(yōu)點(diǎn)是編譯器可以進(jìn)行檢查,以確保不會(huì)意外地添加任何實(shí)例成員。 編譯器可保證無法創(chuàng)建此類的實(shí)例。
二. 靜態(tài)方法
- 靜態(tài)方法和屬性無法在其包含類型中訪問非靜態(tài)字段和事件
- 它們無法訪問任何對(duì)象的實(shí)例變量,除非在方法參數(shù)中顯式傳遞它。
- 在首次訪問靜態(tài)成員之前以及在調(diào)用構(gòu)造函數(shù)(如果有)之前,會(huì)初始化靜態(tài)成員。
- 對(duì)靜態(tài)方法的調(diào)用會(huì)采用 Microsoft 中間語言 (MSIL) 生成調(diào)用指令,而對(duì)實(shí)例方法的調(diào)用會(huì)生成 callvirt 指令,該指令還會(huì)檢查是否存在 null 對(duì)象引用。 但是在大多數(shù)時(shí)候,兩者之間的性能差異并不顯著。