日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
C#const變量詳細(xì)描述

C#語(yǔ)言有很多值得學(xué)習(xí)的地方,這里我們主要介紹C# const變量,包括介紹getter與setter(屬性存取器)可以像方法一樣封裝邏輯并且像變量一樣使用等方面。

創(chuàng)新互聯(lián)建站從2013年開(kāi)始,先為納雍等服務(wù)建站,納雍等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為納雍企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

static readonly與C# const變量,作用是一樣的,無(wú)論訪(fǎng)問(wèn)修飾符是不是public,還是其它(private、 protected、internal),變量名稱(chēng)一般為大寫(xiě),中間以下劃線(xiàn)。

 
 
 
  1. public static readonly int MAX_HEIGHT;  
  2. public const int MIN_HEIGHT = 10

有些程序員對(duì)大寫(xiě)不敏感,上例中,MAX_HEIGHT用Max_Height代替也未嘗不可 ,甚至MaxHeight也可以。在.Net類(lèi)庫(kù)中,int.MaxValue與int.MinValue便是這樣定義的。

const常量更確切的說(shuō)是編譯時(shí)常量,因?yàn)樗谶\(yùn)行時(shí)是不存在的,在編譯中所有變量引用將被實(shí)際值替掉。而 static readonly則不然,它在運(yùn)行時(shí)也是存在的。從原理上講,論效率const優(yōu)于static readonly。但是在一個(gè)項(xiàng)目中,在dll局部升級(jí)時(shí),如果改變了某個(gè)C# const變量的值,而未升級(jí)的dll如果也有這個(gè)C# const變量的話(huà),顯而易見(jiàn)這時(shí)候問(wèn)題將是產(chǎn)生。如 果因此而升級(jí)全部dll,反而不值。所以在大型、多變應(yīng)用中,建議使用static readonly代替const。其微乎其微的效率的減損對(duì)比 升級(jí)布置可能出現(xiàn)的問(wèn)題還是可以接受的。

除了以上兩種靜態(tài)只讀和常量變量之外,其它變量命名均以下劃線(xiàn)開(kāi)始,訪(fǎng)問(wèn)修改符為private(不建議命名為 internal、protected,更不建議命名為public):

 
 
 
  1. private static int _maxHeight;  
  2. private int _minHeight; 

如果其命名不前置下劃線(xiàn),易與參數(shù)變量混淆。對(duì)于下面這種定義:

 
 
 
  1. private int _minHeight = default(int);  
  2. public int MinHeight  
  3. {  
  4. set{  
  5. _minHeight = value;  
  6. }  
  7. get{  
  8. return _minHeight;  
  9. }  

初學(xué)者可能覺(jué)得有點(diǎn)畫(huà)蛇添足,不如直接命名為:

 
 
 
  1. public int MinHeight; 

這樣豈不簡(jiǎn)單,干嗎還要用getter和setter封裝起來(lái),額外的函數(shù)調(diào)用也使效率有損。有時(shí)候在開(kāi)發(fā)項(xiàng)目時(shí),開(kāi)始時(shí)我們要畫(huà)的可能只是一條蛇,但是項(xiàng)目后期需求變了,改畫(huà)一條龍了。所以在項(xiàng) 目初期畫(huà)蛇的時(shí)候添上一對(duì)足還是很有遠(yuǎn)見(jiàn)的。

getter與setter(屬性存取器)可以像方法一樣封裝邏輯并且像變量一樣使用,建議所有非靜態(tài)只讀和常量,定 義為private,然后給其添加相應(yīng)屬性存取器,用于賦值與讀取。在其它方法體內(nèi)(包涵類(lèi)外與類(lèi)內(nèi)),不建議直接讀寫(xiě)變量。即使 它目前可以被直接讀寫(xiě),我們也要通過(guò)調(diào)用屬性存取器也調(diào)用。這一點(diǎn)有點(diǎn)麻煩,但很重要,很高老手有時(shí)也會(huì)犯錯(cuò)誤。如下所示:

 
 
 
  1. private int _minHeight = int.MinValue;  
  2. public int MinHeight//或者是 protected、internal,甚至是private  
  3. {  
  4. set{  
  5. _minHeight = value;  
  6. //即使這里目前沒(méi)有其它處理邏輯  
  7. }  
  8. get{  
  9. return _minHeight;  
  10. }  
  11. }  
  12.  
  13. public void Method1 (int minHeight)  
  14. {  
  15. this.MinHeight = minHeight;//在這里不要使用 this._minHeight直接讀寫(xiě)  
  16. //  

即使變量的訪(fǎng)問(wèn)是受保護(hù)的或者或者是私有的,也要使用屬性存取器。原則是:對(duì)于變量的讀取,要用屬性存取器封裝,無(wú)論其訪(fǎng)問(wèn)修飾符如何,即使其屬性存取器內(nèi)除了存取目前 沒(méi)有任何其它邏輯。

【編輯推薦】

  1. C#類(lèi)和結(jié)構(gòu)簡(jiǎn)單介紹
  2. C# explicti和implicit詳解
  3. C#編寫(xiě)ActiveX控件詳細(xì)介紹
  4. C# StringBuilder和String淺析
  5. C#別名指示符學(xué)習(xí)經(jīng)驗(yàn)

當(dāng)前名稱(chēng):C#const變量詳細(xì)描述
文章起源:http://www.5511xx.com/article/cddsses.html