|
靜態(tài)類是一種聲明為 static 類型的,且僅包含靜態(tài)成員的類。不能使用 new 關(guān)鍵字創(chuàng)建靜態(tài)類的實(shí)例。靜態(tài)類在加載包含該類的程序或命名空間時(shí)由 .NET Framework 公共語言運(yùn)行庫 (CLR) 自動(dòng)加載。 靜態(tài)類和類成員用于創(chuàng)建無需創(chuàng)建類的實(shí)例就能夠訪問的數(shù)據(jù)和函數(shù)。靜態(tài)類成員可用于分離獨(dú)立于任何對(duì)象標(biāo)識(shí)的數(shù)據(jù)和行為:無論對(duì)象發(fā)生什么更改,這些數(shù)據(jù)和函數(shù)都不會(huì)隨之變化。當(dāng)類中沒有依賴對(duì)象標(biāo)識(shí)的數(shù)據(jù)或行為時(shí),就可以使用靜態(tài)類。
靜態(tài)類的主要特點(diǎn)如下:
- 它們僅包含靜態(tài)成員。
- 它們不能被實(shí)例化。
- 它們是密封的。
- 它們不能包含實(shí)例構(gòu)造函數(shù)。
因此創(chuàng)建靜態(tài)類與創(chuàng)建僅包含靜態(tài)成員和私有構(gòu)造函數(shù)的類大致一樣。私有構(gòu)造函數(shù)阻止類被實(shí)例化。
使用靜態(tài)類的優(yōu)點(diǎn)在于:
- 寫在棧中,安全高速穩(wěn)定,而且在執(zhí)行的時(shí)候,十分優(yōu)先。
- 編譯器能夠執(zhí)行檢查以確保不致偶然地添加實(shí)例成員。
- 編譯器將保證不會(huì)創(chuàng)建此類的實(shí)利。
類是密封的,因此不可被繼承。靜態(tài)類不能包含構(gòu)造函數(shù),但仍可聲明靜態(tài)構(gòu)造函數(shù)以分配初始值或設(shè)置某個(gè)靜態(tài)狀態(tài)。靜態(tài)方法屬于類所有,類實(shí)例化前即可使用。
靜態(tài)類和非靜態(tài)類的區(qū)別:
非靜態(tài)類是儲(chǔ)存有狀態(tài)的一類操作過程,例如語言包的非靜態(tài)類,聲明了之后,可能獲取語言的種類,語言元素和一些附加的東西。
靜態(tài)類可以視為類庫里都是單一的過程,不存在“狀態(tài)”的概念,就可以使用靜態(tài)類。
非靜態(tài)類可以包含靜態(tài)方法,但靜態(tài)類不能包含非靜態(tài)方法。
NET技術(shù):.NET :靜態(tài)類的理解,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。