2017-03-17 166 views
0

我已經閱讀了所有關於爲什麼應該使用'使用內部/外部命名空間以及爲什麼應該使用'var'的問題。C#完全限定的命名空間與小命名空間

我不想在這裏找到答案。

我想知道(或確認)的是:下面兩個聲明是否有區別?

namespace MyCo.MyProject.MyModule 
{ 
    using MyModule2; 
    /*Put class definition here*/ 
} 

namespace MyCo.MyProject.MyModule 
{ 
    using MyCo.MyProject.MyModule2; 
    /*Put class definition here*/ 
} 

那麼,在使用指令時不使用完全限定名稱的命名空間與不使用它們之間有什麼區別?

我不認爲有任何,但如果有人可以給我一個參考,我可以證明(或者如果我錯了反駁它(是反駁真正的英文單詞,或者我正在製造?))這,這將是太棒了。

+1

當我們在多個名稱空間中擁有一個具有相同名稱的類時,完全限定是有用的,否則,只能使用類名和使用語句作爲頂部命名空間。 –

+1

'反駁'確實是一個英文單詞。但是'prouve'不是。 –

+0

@MikeNakis修正了謝謝XD – Sebastien

回答

1

名稱空間用來區分程序性關注的不同區域之間的責任。這意味着您可以在應用程序的不同區域中使用相同的類和組件,從而消除了可能使用戶對其所做的事情和上下文感到困惑的任意名稱的需求。

在你的例子中,提供完整的命名空間是有效的,但你不需要,因爲你已經在可以找到該類的'區域'中。通常爲了保持整潔,你可以在文件的頂部使用using聲明來引入你想要的相關命名空間。只有在類名衝突時纔會實際指定名稱空間或其一部分,以便區分這兩者。