91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中如何使用 const變量

發布時間:2021-07-19 15:43:43 來源:億速云 閱讀:179 作者:Leah 欄目:編程語言

C#中如何使用 const變量,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

static readonly與C# const變量,作用是一樣的,無論訪問修飾符是不是public,還是其它(private、 protected、internal),變量名稱一般為大寫,中間以下劃線。

public static readonly int MAX_HEIGHT;  public const int MIN_HEIGHT = 10;

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

const常量更確切的說是編譯時常量,因為它在運行時是不存在的,在編譯中所有變量引用將被實際值替掉。而 static readonly則不然,它在運行時也是存在的。從原理上講,論效率const優于static readonly。但是在一個項目中,在dll局部升級時,如果改變了某個C# const變量的值,而未升級的dll如果也有這個C# const變量的話,顯而易見這時候問題將是產生。如 果因此而升級全部dll,反而不值。所以在大型、多變應用中,建議使用static readonly代替const。其微乎其微的效率的減損對比 升級布置可能出現的問題還是可以接受的。

除了以上兩種靜態只讀和常量變量之外,其它變量命名均以下劃線開始,訪問修改符為private(不建議命名為 internal、protected,更不建議命名為public):

private static int _maxHeight;  private int _minHeight;

如果其命名不前置下劃線,易與參數變量混淆。對于下面這種定義:

private int _minHeight = default(int);  public int MinHeight  {  set{  _minHeight = value;  }  get{  return _minHeight;  }  }

初學者可能覺得有點畫蛇添足,不如直接命名為:

public int MinHeight;

這樣豈不簡單,干嗎還要用getter和setter封裝起來,額外的函數調用也使效率有損。有時候在開發項目時,開始時我們要畫的可能只是一條蛇,但是項目后期需求變了,改畫一條龍了。所以在項 目初期畫蛇的時候添上一對足還是很有遠見的。

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

private int _minHeight = int.MinValue;  public int MinHeight//或者是 protected、internal,甚至是private  {  set{  _minHeight = value;  //即使這里目前沒有其它處理邏輯  }  get{  return _minHeight;  }  }   public void Method1 (int minHeight)  {  this.MinHeight = minHeight;//在這里不要使用 this._minHeight直接讀寫  //  }

即使變量的訪問是受保護的或者或者是私有的,也要使用屬性存取器。原則是:對于變量的讀取,要用屬性存取器封裝,無論其訪問修飾符如何,即使其屬性存取器內除了存取目前 沒有任何其它邏輯。

看完上述內容,你們掌握C#中如何使用 const變量的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

元氏县| 那坡县| 湘潭市| 鄂伦春自治旗| 邹城市| 读书| 凤翔县| 马尔康县| 华蓥市| 乌拉特后旗| 沂水县| 海城市| 浪卡子县| 隆林| 岳池县| 冀州市| 石城县| 永寿县| 卓尼县| 丽水市| 耒阳市| 昌宁县| 新乐市| 莱州市| 云安县| 北流市| 仁寿县| 潮州市| 汕头市| 水城县| 安阳县| 嘉荫县| 长治市| 波密县| 新化县| 理塘县| 汶上县| 张家川| 名山县| 义乌市| 桓仁|