оператор :: работает только с псевдонимами. Global - это специальная система с псевдонимом.
так ... это работает:
using Foo = System.ComponentModel;
public MyClass {
private Foo::SomeClassFromSystemComponentModel X;
}
, но не так:
public MyClass {
private System.ComponentModel::SomeClassFromSystemComponentModel X;
}
Это позволяет вам вырваться из ада подпространств имен, которые могут возникнуть при интеграции с библиотекой, в которой они имеют:
namespace MyAwesomeProduct.System
{
}
И у вас в коде есть
using MyAwesomeProduct;
global :: позволяет вам найти настоящую Систему.
MSDN информация здесь