.NET(C#)開發小技巧

作者: sban  發布時間: 2008-09-04 16:10  閱讀: 3251 次  推薦: 0   原文鏈接   [收藏]  
 
[1] .NET(C#)開發小技巧
[2] .NET(C#)開發小技巧

    以下是我在.Net開發中總結的一些小的開發技巧,園子里的朋友大多數都是.Net程序員,相信對此都很熟悉。 如果您覺得太淺顯了,請不要嘲笑;如果覺得哪些地方說的欠妥,敬請斧正;如果您覺得還有什么地方沒有說到位,請補充,謝謝。
    這些技巧再淺顯平常不過,初學者很容易忽略。相信越是越老道的程序員,越重視這些稀疏平常的技巧。

    一,關于變量的命名和屬性
      
    static readonly與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局部升級時,如果改變了某個const變量的值,而未升級的dll如果也有這個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直接讀寫
        //
    }

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

[第1頁][第2頁]
0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()