2011-08-30 20 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

不客气!很高兴我能帮上忙! –