2013-07-31 68 views
0

我已經繼承了舊的.NET 2.0 C#系統,目前正在篩選通過巨大代碼庫的方式。因爲我是一名畢業生,所以對現有開發人員爲什麼以某些方式做某些事情感興趣。一個特別的習慣,以前的開發商不得不爲,而不是在類的頂部導入像這樣的引用 -指令和彙編參考文獻

using System.IO; 

他們這樣做是不斷遍及 - (而不是導入頂部參考)。

System.IO.File.Exists(); 

任何人都可以闡明一下,除了必須鍵入更多的代碼之外,還有哪些區別?我正在開發的系統是一個面向業務對象的系統(CSLA),並且沒有此方法的先前經驗,有人可以推薦一種好方法來學習我已經繼承的系統。我很欣賞你看不到我已經擁有的系統,但是對於經驗豐富的用戶有一些瞭解,我們將不勝感激。

問候。

回答

3

這只是一種風格的選擇。有些人喜歡使用全名來知道本地類型名稱不會與系統類型衝突。

using語句只是一種幫助編譯器在編譯時查找引用類型的方法,有沒有差異在運行時間之間;

using System.IO; 

File.Exists(); 

System.IO.File.Exists(); 
1

任何人都可以闡明一些什麼差別(s)爲/比不必鍵入更多的代碼 其他?

這是Joachim所說的編碼標準/風格選擇。

對於大多數命名空間,我個人使用usings,但如果在特定情況下使代碼更清晰,將使用fully qualified names。如避免含糊不清。

此外,我已經看到一些團隊使用.NET類型的usingsfully qualified names來開發他們開發的類型,或者團隊並不總是意識到的非常具體的Scarse類型。使用fully qualified names指出,這種類型很少見,這是它所在的命名空間,所以你不必去尋找它。

可能有人推薦一個好辦法的辦法學習這 我繼承

不要試圖什麼都明白了前面的系統。瞭解什麼時候你需要知道什麼時候(當你正在進行改變時)。收集關於事情發生的高層次的理解,以便在需要時可以快速找到它們。

1

我通常更喜歡using聲明,但有些地方可能會使用它。

考慮以下

namespace MyNamespace 
{ 
    public class File 
    { 
     public static bool Exists() 
     { 
      return false; 
     } 
    } 
} 

然後使用

using System.IO; 
using MyNamespace; 

File.Exist();//this is now ambigious 

在你已經使用比這些我System.IO.File.Exist();

或者

using System.IO; 
using MyFile = MyNamespace.File; 
File.Exist();//this is call is not ambigious since File means System.IO.File only 

其他此類案件沒有找到任何理由使用全名而不是using statements

0

就個人而言,我喜歡使用全名,如果我只在該類名稱空間中使用了一次或兩次該名稱空間中的某些內容。這樣,它不會使IntelliSense混亂,它幫助我專注於我真正關心的特定類中的命名空間。