2012-08-04 80 views
5

可能重複:
Should Usings be inside or outside the namespace「命名空間」內部或外部的「使用」(導入)之間的區別?

我已經看到了使用裝配的兩種方法。使用其中一個的區別和好處是什麼

namespace Assembly 
{ 
    using System.Data; 
    class Foo{ 
    ... 
    } 
} 

using System.Data; 
namespace Assembly 
{ 
    class Foo{ 
    ... 
    } 
} 
+0

也是在這[維基問題(http://stackoverflow.com/questions/2026466/c-sharp-使用名稱空間的指令 - 在嵌套的命名空間),你會發現一個非常好的「發生了什麼後面的代碼」你的問題 – Steve 2012-08-04 21:34:10

+0

參見http://blogs.msdn.com/b/ericlippert/archive/2007/06 /25/inside-or-outside.aspx – 2012-08-04 21:39:36

回答

0

實際上它們之間有一個自帶的差異。

考慮下面的例子:在這個

//File1.cs 
using System; 
namespace Outer.Inner 
{ 
    class Foo 
    { 
     static void Bar() 
     { 
       double d = Math.PI; 
     } 
    } 
} 

// File2.cs 
namespace Outer 
{ 
    class Math 
    { 
    } 
} 

編譯器會得到一個錯誤,因爲它會發現在Outer命名空間Math類,看着面前的System命名空間。而Math命名空間裏面沒有任何PI

在情況下,如果你的,相反,把using System類的聲明,它將被編譯器第一採摘,所以沒有錯誤會產生。

這樣做的好處是顯而易見的:在情況下,如果你得到一些代碼,如果有人在寫你的相同命名空間中寫道Math類,你有機會要解決這個問題。

對於更詳細的解釋一下這個鏈接(從我gracefuly複製過的代碼)Should Usings be inside or outside the namespace

0

我不相信這兩種格式都有好處。這簡直歸結爲團隊編碼標準和可讀性。

相關問題