Глобальный квалификатор пространства имен позволяет получить доступ к члену в глобальном («пустом») пространстве имен.
Если вы вызываете неквалифицированный тип (например, 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");
}
}