2011-08-30 23 views
2

在我的解決方案我有在業務層和另一個處理一體化項目;在這最後一個我有一個類來做一些服務方法調用。是什麼意思前綴「全球::」智能感知是顯示我

業務層引用一體化項目。在業務層,我有followig方法,當我嘗試創建一個Proxy類的實例時,intellisense向我展示了很多「global ::」。我認爲這個全球::沒有區別,但我想知道爲什麼intellisense向我展示了這一點。

public void ActualizarOrdenesDeCompraDesdeElWS() 
{ 
    Integracion.ProxyAudifarma proxy = new global::GOA.Integracion.ProxyAudifarma(); 
} 

我想這是一個簡單的C#的基礎我失蹤,你的答案感謝。

--Post溶液編輯:

調用是:

namespace GOA.Negocio 
{ 
    public class GOA 
    {   
     public int ActualizarOrdenesDeCompraDesdeElWS() 
     {      
      Integracion.ProxyAudifarma proxy = new global::GOA.Integracion.ProxyAudifarma(); 

類GOA被命名爲根名字空間中引入的模糊的風險。將類名更改爲AplicacionGOA解決了我的問題,現在intellisense不設置「global ::」空名稱空間前綴。

+1

http://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx – 2011-08-30 18:17:10

+0

智能感知感覺「防患於未然」 – Arun

回答

6

它只是解決了頂級全局命名空間,以避免可能衝突的類名等歧義。

詳見這裏從MSDN:http://msdn.microsoft.com/en-us/library/cc713620.aspx

例如,在你的代碼上面,如果你有一個類或成員或命名GOA的東西,它會與命名空間的一部分發生衝突,把全球::在前面完全具備的素質一個來自其全局名稱空間中的根的名稱空間。

+0

好了,現在我明白了,這是一個不確定性的風險。我使用了一個名爲GOA.Negocio.GOA的類的GOA.Integracion.ProxyAudifarma。將類名從GOA更改爲AplicacionGOA會導致intellisense停止設置global ::前綴。謝謝。 – daniloquio

+0

不客氣!很高興我能幫上忙! –