2014-10-01 143 views
9

是否有任何區別:在C#命名空間點命名空間和嵌套命名空間有什麼區別?

namespace Outer.Inner 
{ 
} 

而且

namespace Outer 
{ 
    namespace Inner 
    { 
    } 
} 

+0

在我的經驗,但是第一個選項是更清潔,並消除了多層嵌套。這對於讀取你的代碼的其他人來說是非常有幫助的,但是正因爲如此,代碼纔是自由的。明智地使用。 – SnareChops 2014-10-01 20:11:18

回答

6

沒有任何區別,那些是一樣的,但是第一種是比較常見的。

5

不,但第一個變體是最常用的C#代碼。
第二個變體是你必須用C++寫的東西,我不確定我是否真的在真正的C#代碼中看到它。

10

假設您不在Outer命名空間中放置任何其他聲明或using指令,則根本沒有任何區別。

鑑於你會很非常很少聲明一個文件內的多個命名空間中的成員,我建議使用第一種形式 - 除了其他任何東西,它可以節省一定程度的縮進。需要注意的是「梅開二度在新行的開始」是C#,雖然較傳統的支撐方式:

namespace Outer.Inner 
{ 
    ... 
} 
+2

謝謝,我已經用C++進行編程了一段時間,而且我真的不喜歡在新行開始的時候使用大括號,我不知道爲什麼,但是我很難讀這樣的代碼! – paul 2014-10-01 20:14:54

+3

@paul:儘管支撐約定不像命名那樣普遍,但我認爲值得讓自己沉浸在語言最常見的約定 - 你會很快習慣它,然後所有的例子等等你會在網上閱讀會更容易閱讀...... *和*閱讀你的代碼(從C#背景)的任何人都會發現它更易於閱讀。 – 2014-10-01 20:16:45

+2

謝謝,我將盡力做到這一點,但我已經看到這個網站上的一些圖書館:http://referencesource.microsoft.com/使用支持相同的風格,因爲我使用,但我想你是對的,感謝提示! – paul 2014-10-01 20:19:44