建議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個建議》陸敏技