2010-02-24 145 views

回答

4

正如其他人所說的,當您必須同時導入多個名稱空間時,對消除歧義類型非常有用。

這似乎是對別人的意見,但它也可能是兩個域之間明確範圍有用:

using Gilco.Test.ProjectX; 
using DevCode = Gilco.Nilfum.Alpha.ProjectX; 

public class MyTests 
{ 
    public void TestCase1() 
    { 
     var car = new DevCode.Car(); 
     var testCar = new TestCar(); 
    } 
} 

時,你必須指定命名空間也可能在極少數情況下非常有用(爲消除歧義),您的命名空間不這麼長時間來證明別名,但可能很快發生變化(當你使用命名空間來支持你的代碼路徑的兩個版本同時),如:

using DevCode = Gilco.V1; 
9

只有在與類存在衝突時才使用命名空間別名。 對我來說,它並不是簡單的。我的意見:如果沒有必要,請不要使用它。

0

我在使用兩個具有相同名稱的類時通常只使用名稱空間別名。當您創建命名空間別名

0

據我所知 - 靜態變量值爲每個別名是它自己的,而不是依賴於其他別名 +簡化

5

,當你有衝突,他們是有用的。例如,如果您的類型爲NamespaceA.JobberNamespaceB.Jobber,並且想要在同一個類中使用它們,那麼您將無法爲NamespaceA和NamespaceB添加using語句,因爲編譯器不會知道您是什麼指您是否輸入Jobber。在這種情況下,您可以爲一個或兩個命名空間提供別名。

這可以使你的代碼更加清晰,特別是如果命名空間很長,因爲替代方法是每次使用類型時都寫出整個命名空間。

1

命名空間別名可用於解決代碼中具有相同名稱的兩個或多個類的歧義性。例如,您的Winform中有Button類,並且您的第三個庫中還有一個Button類。當你的代碼參考按鈕,你可能想量化它來自第三方,而不是想把整個長文本到處,而寧可使用別名using CompanyX = CompanyX.UI.Animated.Control ... CompanyX.Button

事實上,我只是在工作項目的早期使用它也可以讓我的代碼更具可讀性。我使用和,而不是具有可變定義應用程序無處不在,很難從我的實際應用類區別開來,我定義使用Word=Microsoft.Office.Interop.Word,並在代碼中,我可以說Word.Application指Word應用程序對象Office Word中自動化

4

在情況下,有是相互衝突的類型名稱,使用別名將使您不必使用完全限定的名稱。例如名稱TextBox用於以下兩個名稱空間。

System.Windows.Forms.TextBox 
System.Web.UI.WebControls.TextBox 

依賴使用聲明的順序將是相當脆弱的,只會幫助一個命名空間。更好的辦法是爲每個名稱空間分配一個別名。

+0

感謝名單斯科特漂亮很好的解釋,簡單的,+1 – 2012-09-03 13:03:51

相關問題