程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Effective C#原則1:盡可能的使用屬性(property),而不是數據成員(field)(1)

Effective C#原則1:盡可能的使用屬性(property),而不是數據成員(field)(1)

編輯:關於C語言

我們的目標:盡可能編寫出運行效率更高,更健壯,更容易維護的C#代碼。

原則一:盡可能的使用屬性(property),而不是數據成員(fIEld)。

Always use propertIEs instead of Accessible data members.

出於以下幾點原因,請在設計類時,盡可能的使用屬性,而不 是成員。

1、.Net對屬性的支持遠遠大於對成員的支持,你可以對屬性進 行數據綁定,設計時說明等很多數據成員不被支持的內容。看看.Net裡的屬性面 板,你會明白的。

2、數據安全性檢測;

屬性本質上是兩個函數 ,只是因為C#的特殊語法,但我們可以像訪問成員一樣的訪問它。因此我們可 以在屬性設計上添加更多更靈活的內容,對屬性進行管理。其中對屬性數據的檢 測是其中之一。

在對數據檢測時,如果發現數據不滿足條件,最好以拋 出異常的形式來解決,千萬不要設置默認值,這是很危險的事情。例如:

public string Name{
    get{
        if(this._Name==null){
           return “NoName”;
}else{
    return this._Name;
}
}
set{
    if(value==null){
        this._Name = “NoName”;
}else if(value.Length<=10) {
    this._Name = value;
}else{
    this._Name = value.SubString(0,10);
}
}
}

看上去很不錯 不是嗎?請馬上動手修改你的代碼吧,上面的代碼是很危險的!或者你還不明白 ,明明對數據進行了安全檢測,為什麼還是危險的呢?試想這樣的情況,有兩個 實例o1與o2, o1的Name為null,我們做了這樣的事:o2.Name = o1.Name;

結果是什麼?o2.Name為”NoName”,而在本質上, o1與o2的Name是根本不相等的。這會對後面的程序運行帶來很大的麻煩。請以拋 出異常的形式來解決數據不滿足條件時的問題。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved