2014-01-31 178 views
0

使用System或其他名稱空間的地方? 哪個是編寫代碼的正確或更好的方法,爲什麼? 根據我的C#教練這是第二,但我到處看到第一個。使用和名稱空間

using System; 
namespace Program 
{ 
    class SomeClass 
    { 
    } 
} 

namespace Program 
{ 
using System; 

    class SomeClass 
    { 
    } 
} 

根據我的C#的教練是第二,但我到處看到的第一個。

+0

你的C#的教練可能有一個Java的背景,不知道更好... –

+1

選中此 http://stackoverflow.com/questions/11812088/differences-between-using-import-inside-或命名空間 –

+1

http://stackoverflow.com/questions/125319/should-usings-be-inside-or-outside-the-namespace –

回答

3

using指令的作用域限於它所在的文件。

創建使用別名,以便更容易地將標識符限定爲名稱空間或類型。使用別名指令的右側必須始終是完全限定的類型,而不管前面的使用指令如何。

創建using指令以在命名空間中使用類型而不必指定命名空間。 using指令不允許您訪問嵌套在指定名稱空間中的任何名稱空間。

參見:http://msdn.microsoft.com/en-us/library/sf0df423.aspx

0

使用始終位於文檔的頂部。

+0

這是爲什麼?它編譯的另一種方式呢? –

+0

@Devcon這不是要求。 –

2

這是您的選擇。如果你有一個帶有多個命名空間的代碼文件,但是隻想在這些命名空間之一中使用命名空間導入,那麼第二個命令可能會很方便。但是,到目前爲止,我所看到的大多數編碼指南都指出,文件最多隻能包含一個命名空間,而文件的頂部只能包含字母順序的使用。

1

了StyleCop默認情況下,需要你把usings命名空間內 - 見here;原因如下:(來自鏈接的頁面):

有放置使用指令的名字空間元素內,而不是名稱空間的外面,包括之間的細微差別:內

  1. 配售使用別名指令命名空間消除了編譯器在衝突類型之間的混淆。

  2. 當在單個文件中定義多個名稱空間時,在命名空間元素中放置使用指令作用域引用和別名。