2010-07-17 25 views
3

如果兩個程序集都定義了包含class A1namespace A,那麼這兩個類被視爲唯一類型。當兩個引用程序集都定義了類型A.A1時遇到問題

a)這兩個命名空間是否也被認爲是唯一的?

b)如果program P有兩個程序集的引用,我們如何創建兩個類型的實例?也就是說,我不斷收到一個錯誤,當我嘗試創建的A.A1

using A; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      A1 a = new A1(); // error 
     } 
    } 
} 

C),但一個實例,如果program P還定義type B.A1,則編譯器不會當我宣佈的A1實例抱怨:

using A; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      A1 a = new A1(); // ok 
     } 
    } 

    class A1 { } 
} 

不應該編譯器抱怨,因爲它不知道要使用哪個版本的A1A.A1來自其中一個引用的程序集或B.A1)?

感謝名單

回答

1

參考具有這些命名空間內的相同的命名空間和相同的部件兩個組件是一個完整的沒有沒有(即不這樣做!)。我可以控制一個或其他程序集,確保這兩個根名稱空間不同,然後可以消除對程序集/名稱空間層次結構中成員的引用。

相關問題