首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#中的绝对/外部和内部名称空间混淆

C#中的绝对/外部和内部名称空间混淆
EN

Stack Overflow用户
提问于 2011-05-17 21:55:21
回答 6查看 3.1K关注 0票数 13
代码语言:javascript
运行
复制
using Foo.Uber;

namespace MyStuff.Foo
{
    class SomeClass{
        void DoStuff(){
            // I want to reference the outer "absolute" Foo.Uber
            // but the compiler thinks I'm refering to MyStuff.Foo.Uber
            var x = Foo.Uber.Bar();
        }
    }
}

我该怎么解决这个问题呢?只是在我的名称空间中移动using语句是没有帮助的。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-05-17 21:57:46

您可以使用namespace alias qualifier (通常是global::)来引用默认的/根名称空间来完成此操作:

global::Foo.Uber

票数 24
EN

Stack Overflow用户

发布于 2011-05-17 22:00:26

实际上,您可以通过指定完整路径

代码语言:javascript
运行
复制
var x = global::Foo.Uber.Bar();

命名空间概述

命名空间具有以下属性:

  • 他们组织大型的代码项目。
  • 他们用分隔。operator.
  • The框架使用指令意味着您无需为每个类指定命名空间的名称。
  • 全局命名空间是“根”命名空间:.NET
  • 命名空间将始终引用框架命名空间

我更喜欢它而不是别名,因为当你读到它时,你就会确切地知道发生了什么。如果您跳过别名的定义,则很容易产生误解。

票数 3
EN

Stack Overflow用户

发布于 2011-05-17 22:00:51

在using语句中为命名空间添加别名:

代码语言:javascript
运行
复制
using ThatOuterFoo = Foo.Uber;
...
...
//Some time later...
var x = ThatOuterFoo.Bar();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6031862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档