这意味着intellisense给我看的前缀“global ::”是什么意思

时间:2011-08-30 18:13:56

标签: c#

在我的解决方案中,我有一个业务层项目和另一个处理集成的项目;在最后一个我有一个类来进行一些服务方法调用。

业务层引用集成项目。在那里,在业务层,我有followig方法,当我尝试创建Proxy类的实例时,intellisense向我展示了很多“global ::”。我认为这个全局::没有区别但是我想知道intellisense为什么会向我展示这一点。

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

我想这是一个微不足道的C#基础,我很想念,谢谢你的答案。

- 解决方案后修改:

电话是:

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

GOA类被命名为根名称空间引入了歧义风险。将类名更改为AplicacionGOA解决了我的问题,现在intellisense没有设置“global ::”空名称空间前缀。

1 个答案:

答案 0 :(得分:6)

它只是解析为顶级全局命名空间,以避免与可能发生冲突的类名等产生歧义。

在MSDN上查看更多内容:http://msdn.microsoft.com/en-us/library/cc713620.aspx

例如,在上面的代码中,如果你有一个类或成员或名为GOA的东西,它将与该命名空间部分发生冲突,将global :: in front完全限定命名空间从其根目录在全局命名空间中。