这是一个我已经有一段时间的问题,但实际上从来没有问过......
在Visual Studio生成的很多设计器文件中,有些变量以global为前缀::有人可以解释这意味着什么,这个前缀做了什么以及我应该在哪里使用它?
Rob*_*ine 12
全局命名空间限定符允许您访问全局("空")命名空间中的成员.
如果您要调用非限定类型(例如MyClass.DoSomething()而不是MyNamespace.MyClass.DoSomething()),则假定它位于当前名称空间中.那么如何限定类型以说它在全局/空命名空间中?
此代码示例(控制台应用程序)应说明其行为:
using System;
namespace MyNamespace
{
public class Program
{
static void Main(string[] args)
{
MessageWriter.Write(); // writes "MyNamespace namespace"
global::MessageWriter.Write(); // writes "Global namespace"
Console.ReadLine();
}
}
// This class is in the namespace "MyNamespace"
public class MessageWriter
{
public static void Write()
{
Console.WriteLine("MyNamespace namespace");
}
}
}
// This class is in the global namespace (i.e. no specified namespace)
public class MessageWriter
{
public static void Write()
{
Console.WriteLine("Global namespace");
}
}
Run Code Online (Sandbox Code Playgroud)