[.NET]使用命名空間別名限定詞

  • 12055
  • 0
  • .NET
  • 2012-12-27

[.NET]使用命名空間別名限定詞

MSDN中的說明,如果程式中有將.NET系統的成員被其他同名的實體隱藏的時候,可以使用 global:: 來使用 .NET系統的成員 ,如下,

global::System.Console

詳細可參考「使用命名空間別名限定詞」。

 

以下筆者想要分享的是如果本身的系統中因為使用了using namespace,然後造成重覆了(有時不同組件中都會有Toolkit這個Class),這時VS.NET就會跟你說「'XXXX' 參考在 'XXXX' 和 'XXXX' 之間模稜兩可」。

以下我們使用範例來說明,

 

以上我們建立2個Toolkit的Class,分別在 namespace MyTools.工具組A 及 namespace MyTools.工具組A 之中。

 

程式中,我們分別使用using如下,

using MyTools.工具組A;
using MyTools.工具組B;

 

然後程式中寫入

Toolkit tk= new Toolkit();

就會出現「'Toolkit' 參考在 'MyTools.工具組A.Toolkit' 和 'MyTools.工具組B.Toolkit' 之間模稜兩可」的錯誤。

image

 

這時,解決方法有以下幾個方式,

1.使用full namespace方式,改成如下

MyTools.工具組A.Toolkit tk = new MyTools.工具組A.Toolkit();
MyTools.工具組B.Toolkit tkB = new MyTools.工具組B.Toolkit();

 

2.使用 namespace 別名的方式,如下,

using TA = MyTools.工具組A;
using TB = MyTools.工具組B;

 

然後程式使用 namespace 別名

TA.Toolkit tk = new TA.Toolkit();
TB.Toolkit tkB = new TB.Toolkit();

 

如果下次再遇到這種情形,就可以使用 namespace別名 的方式來解決哦!

VB.NET 也可以的哦!

 

Imports TA = MyTools.工具組A
Imports TB = MyTools.工具組B

 

以上內容是看了「請問C#中的using用意以及一些問題」後的感想。

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^