靜態類的主要特性:
1:僅包含靜態成員。
2:無法例項化。
3:是密封的。
4:不能包含例項建構函式。
靜態成員
1:非靜態類可以包含靜態的方法、字段、屬性或事件;
2:無論對乙個類建立多少個例項,它的靜態成員都只有乙個副本;
3:靜態方法和屬性不能訪問其包含型別中的非靜態欄位和事件,並且不能訪問任何物件的例項變數;
4:靜態方法只能被過載,而不能被重寫,因為靜態方法不屬於類的例項成員;
5:雖然字段不能宣告為 static const,但 const 欄位的行為在本質上是靜態的。
這樣的字段屬於類,不屬於類的例項。因此,可以同對待靜態字段一樣使用 classname.membername 表示法來訪問 const 字段;
6:c# 不支援靜態區域性變數(在方法內部定義靜態變數)。
靜態建構函式
1:靜態類可以有靜態建構函式,靜態建構函式不可繼承;
2:靜態建構函式可以用於靜態類,也可用於非靜態類;
3:靜態建構函式無訪問修飾符、無引數,只有乙個 static 標誌;
4:靜態建構函式不可被直接呼叫,當建立類例項或引用任何靜態成員之前,靜態建構函式被自動執行,並且只執行一次。
注意:1:靜態類在記憶體中是一直有位置的;
2:非靜態類在例項化後是在記憶體中是獨立的,它的變數不會重複,在使用後會及時銷毀,所以不會出現未知的錯誤。
在c#中靜態成員是比較敏感的東西,在不是十分確認的情況下不要使用;
3:建議更多地使用一般類(非靜態類)
——————————————————————————————————乾貨總結---適合複習使用
C 中的靜態類 靜態成員 靜態建構函式
關鍵字static修飾的類稱之為靜態類。靜態類不能例項化。static關鍵字可以防止程式設計師寫 例項化靜態類,也可以防止在靜態類的內部宣告任何例項成員。c 編譯器會自動把靜態類標記為sealed,這個關鍵字將類指定為不可擴充套件 不能從它派生出其他類 靜態類特性 僅包含靜態成員 無法例項化 屬於密...
類靜態成員和類靜態成員函式
當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...
靜態建構函式和靜態類
靜態建構函式的幾點注意 一.乙個類只能定義乙個靜態建構函式。換句話說,靜態建構函式不能被過載。二.靜態建構函式不允許訪問修飾符並且不能接受任何引數。三.無論建立了多少型別的物件,靜態建構函式只執行一次。四.執行庫建立類例項或呼叫者首次訪問靜態成員之前,執行庫會呼叫靜態建構函式。五.靜態建構函式的執行...