:: оператор — оператор псевдонима пространства имен
Используйте квалификатор псевдонима пространства имен ::
для получения доступа к элементам пространства имен, обозначенного псевдонимом. Квалификатор ::
используется только между двумя идентификаторами. Идентификатор слева может быть одним из псевдонимов пространства имен, экстерна или псевдонима global
. Например:
Псевдоним пространства имен, созданный с помощью директивы псевдонима using:
using forwinforms = System.Drawing; using forwpf = System.Windows; public class Converters { public static forwpf::Point Convert(forwinforms::Point point) => new forwpf::Point(point.X, point.Y); }
Псевдоним
global
, который является псевдонимом глобального пространства имен. Глобальное пространство имен — это пространство имен, содержащее пространства имен и типы, которые не объявлены внутри именованного пространства имен. При использовании с::
квалификаторомglobal
псевдоним всегда ссылается на глобальное пространство имен, даже если есть псевдоним пользовательскогоglobal
пространства имен.В следующем примере используется псевдоним
global
для доступа к пространству имен .NET System, которое является элементом глобального пространства имен. Без псевдонимаglobal
доступ к определяемому пользователем пространству именSystem
, которое является элементом пространства именMyCompany.MyProduct
, будет осуществляться следующим образом:namespace MyCompany.MyProduct.System { class Program { static void Main() => global::System.Console.WriteLine("Using global alias"); } class Console { string Suggestion => "Consider renaming this class"; } }
Примечание.
Ключевое слово
global
является псевдонимом глобального пространства имен, только если оно является левым идентификатором квалификатора::
.
Можно также использовать маркер .
для получения доступа к элементам пространства имен, обозначенного псевдонимом. При этом маркер .
также используется для доступа к элементам типа. Квалификатор ::
гарантирует, что его левый идентификатор всегда ссылается на псевдоним пространства имен, даже если существует тип или пространство имен с таким же именем.
Спецификация языка C#
Дополнительные сведения см. в описании квалификаторов псевдонимов пространства имен в спецификации языка C#.