C#靜態類和靜態類成員用於創建無需創建類的實例就能夠訪問的數據和函數。靜態類成員可用於分離獨立於任何對象標識的數據和行為:無論對象發生什麼更改,這些數據和函數都不會隨之變化。當類中沒有依賴對象標識的數據或行為時,就可以使用靜態類。
讓我們來看看靜態類:
類可以聲明為static的,以指示它僅包含靜態成員。不能使用 new 關鍵字創建靜態類的實例。靜態類在加載包含該類的程序或命名空間時由 .Net Framework 公共語言運行庫 (CLR) 自動加載。
使用靜態類來包含不與特定對象關聯的方法。例如,創建一組不操作實例數據並且不與代碼中的特定對象關聯的方法是很常見的要求。您應該使用靜態類來包含那些方法。
靜態類的主要功能如下:
1、它們僅包含靜態成員。
2、它們不能被實例化。
3、它們是密封的。
4、它們不能包含實例構造函數(C# 編程指南)。
因此創建靜態類與創建僅包含靜態成員和私有構造函數的類大致一樣。私有構造函數阻止類被實例化。
使用靜態類的優點在於,編譯器能夠執行檢查以確保不致偶然地添加實例成員。編譯器將保證不會創建此類的實利。
靜態類是密封的,因此不可被繼承。靜態類不能包含構造函數,但仍可聲明靜態構造函數以分配初始值或設置某個靜態狀態。
何時使用靜態類
假設有一個類 CompanyInfo,它包含用於獲取有關公司名稱和地址信息的下列方法。
class CompanyInfo
{
public string GetCompanyName() { return "CompanyName"; }
public string GetCompanyAddress() { return "CompanyAddress"; }
//...
}