首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么在C#中使用global关键字?

为什么在C#中使用global关键字?
EN

Stack Overflow用户
提问于 2010-08-24 08:39:46
回答 3查看 14.8K关注 0票数 57

我想知道为什么您可能想要使用global::前缀。在下面的代码中,ReSharper将其标识为冗余的,并且可以删除:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-24 08:42:47

最好在生成的代码中使用全局命名空间前缀。这样做是为了避免命名空间中存在类似命名类型的情况。

如果您在名称空间中创建了一个名为System.Diagnostics.DebuggerNonUserCodeAttribute 的类型,您将注意到ReSharper不再显示不需要global::。代码生成器只是想避免与您自己的类型名称发生任何冲突。

票数 53
EN

Stack Overflow用户

发布于 2010-08-24 08:42:20

关键字global::使编译器绑定从全局名称空间开始的名称,而不是当前上下文中的名称。在给定的上下文中存在与全局成员同名的可绑定成员,并且需要全局成员时,需要使用它。

例如

代码语言:javascript
复制
class Test {
  class System {}
  public void Example() {
    System.Console.WriteLine("here"); // Error since System binds to Test.System
    global::System.Console.WriteLine("here"); // Works
}

相应的MSDN页面还有几个示例(包括上面的示例)

票数 67
EN

Stack Overflow用户

发布于 2014-03-10 14:34:54

“当全局上下文关键字出现在::运算符之前时,它指的是全局命名空间,这是任何C#程序的默认命名空间,否则将是未命名的。”

来源:https://msdn.microsoft.com/en-us/library/cc713620.aspx

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3552763

复制
相关文章

相似问题

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