建議125:避免用FCL的類型名稱命名自己的類型

建議125:避免用FCL的類型名稱命名自己的類型

試想過自己寫一個Socket類型嗎?如果沒有,我們來嘗試一下:

public class Socket
{
 //省略   
}

把以上代碼同某些其他工具類封裝到某個dll裏,讓其他人調用。調用者代碼如下:

複製代碼
public class SampleInvoker
{
    public void DoSomethingWithSocket()
    {
        Socket socket=new Socket();
        //省略   
    }       
}
複製代碼

接着編譯、運行程序,我們會發現編譯沒有報錯,程序運行也很好。我相信,看到這段代碼的人員,可能都會認爲我們是在使用FCL的Socket類型,而不會想到開發者在這裏使用的是一個自定義的Socket類型。如果足夠幸運,調用者將FCL的Socket命名空間也引入進來了,編譯器會提示我們Socket的應用指示不明確。但是多數情況下,事情也許不會這麼湊巧讓調用者發現這個問題。想象如果發生這種情況,我們會埋下多少陷阱。

應該儘量避免在可見範圍內命名重複的類型,尤其是要避免與FCL中的類型重名。當然,這很大程度上依賴於我們對FCL類型的熟悉程度。如果對某個類型的命名沒有把握,應當首先查詢一下MSDN。記住,如果出現疑問,MSDN是解釋的首選位置。

 

 

轉自:《編寫高質量代碼改善C#程序的157個建議》陸敏技

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章