日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#靜態(tài)類和靜態(tài)類成員詳解

C#靜態(tài)類和靜態(tài)類成員用于創(chuàng)建無需創(chuàng)建類的實例就能夠訪問的數(shù)據(jù)和函數(shù)。靜態(tài)類成員可用于分離獨立于任何對象標(biāo)識的數(shù)據(jù)和行為:無論對象發(fā)生什么更改,這些數(shù)據(jù)和函數(shù)都不會隨之變化。當(dāng)類中沒有依賴對象標(biāo)識的數(shù)據(jù)或行為時,就可以使用靜態(tài)類。

讓我們來看看靜態(tài)類:

類可以聲明為static的,以指示它僅包含靜態(tài)成員。不能使用 new 關(guān)鍵字創(chuàng)建靜態(tài)類的實例。靜態(tài)類在加載包含該類的程序或命名空間時由 .NET Framework 公共語言運行庫 (CLR) 自動加載。

使用靜態(tài)類來包含不與特定對象關(guān)聯(lián)的方法。例如,創(chuàng)建一組不操作實例數(shù)據(jù)并且不與代碼中的特定對象關(guān)聯(lián)的方法是很常見的要求。您應(yīng)該使用靜態(tài)類來包含那些方法。

靜態(tài)類的主要功能如下:

1、它們僅包含靜態(tài)成員。

2、它們不能被實例化。

3、它們是密封的。

4、它們不能包含實例構(gòu)造函數(shù)(C# 編程指南)。

因此創(chuàng)建靜態(tài)類與創(chuàng)建僅包含靜態(tài)成員和私有構(gòu)造函數(shù)的類大致一樣。私有構(gòu)造函數(shù)阻止類被實例化。

使用靜態(tài)類的優(yōu)點在于,編譯器能夠執(zhí)行檢查以確保不致偶然地添加實例成員。編譯器將保證不會創(chuàng)建此類的實利。

靜態(tài)類是密封的,因此不可被繼承。靜態(tài)類不能包含構(gòu)造函數(shù),但仍可聲明靜態(tài)構(gòu)造函數(shù)以分配初始值或設(shè)置某個靜態(tài)狀態(tài)。

何時使用靜態(tài)類

假設(shè)有一個類 CompanyInfo,它包含用于獲取有關(guān)公司名稱和地址信息的下列方法。

 
 
 
  1. class CompanyInfo  
  2.  
  3. {  
  4.  
  5. public string GetCompanyName() { return "CompanyName"; }  
  6.  
  7. public string GetCompanyAddress() { return "CompanyAddress"; }  
  8.  
  9. //...  
  10.  
  11. }  

不需要將這些方法附加到該類的具體實例。因此,您可以將它聲明為靜態(tài)類,而不是創(chuàng)建此類的不必要實例,如下所示:

 
 
 
  1. static class CompanyInfo  
  2.  
  3. {  
  4.  
  5. public static string GetCompanyName() {   
  6. return "CompanyName"; }  
  7.  
  8. public static string GetCompanyAddress() {   
  9. return "CompanyAddress"; }  
  10.  
  11. //...  
  12.  
  13. }  

使用靜態(tài)類作為不與特定對象關(guān)聯(lián)的方法的組織單元。此外,靜態(tài)類能夠使您的實現(xiàn)更簡單、迅速,因為您不必創(chuàng)建對象就能調(diào)用其方法。以一種有意義的方式組織類內(nèi)部的方法(例如 System 命名空間中的 Math 類的方法)是很有用的。靜態(tài)成員

即使沒有創(chuàng)建類的實例,也可以調(diào)用該類中的靜態(tài)方法、字段、屬性或事件。如果創(chuàng)建了該類的任何實例,不能使用實例來訪問靜態(tài)成員。只存在靜態(tài)字段和事件的一個副本,靜態(tài)方法和屬性只能訪問靜態(tài)字段和靜態(tài)事件。靜態(tài)成員通常用于表示不會隨對象狀態(tài)而變化的數(shù)據(jù)或計算;例如,數(shù)學(xué)庫可能包含用于計算正弦和余弦的靜態(tài)方法。

在成員的返回類型之前使用 static 關(guān)鍵字來聲明靜態(tài)類成員,例如:

 
 
 
  1. public class Automobile  
  2.  
  3. {  
  4.  
  5. public static int NumberOfWheels = 4;  
  6.  
  7. public static int SizeOfGasTank  
  8.  
  9. {  
  10.  
  11. get 
  12.  
  13. {  
  14.  
  15. return 15;  
  16.  
  17. }  
  18.  
  19. }  
  20.  
  21. public static void Drive() { }  
  22.  
  23. public static event EventType RunOutOfGas;  
  24. //other non-static fields and properties...  
  25.  
  26. }  

靜態(tài)成員在***次被訪問之前并且在任何靜態(tài)構(gòu)造函數(shù)(如調(diào)用的話)之前初始化。若要訪問靜態(tài)類成員,應(yīng)使用類名而不是變量名來指定該成員的位置。例如:

 
 
 
  1. Automobile.Drive();  
  2.  
  3. int i = Automobile.NumberOfWheels; 

C#靜態(tài)類和靜態(tài)類成員的基本內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C#靜態(tài)類和靜態(tài)類成員有所幫助。


網(wǎng)頁名稱:C#靜態(tài)類和靜態(tài)類成員詳解
本文地址:http://www.dlmjj.cn/article/dhhpdog.html