Оператор :: (справочник по C#):: operator (C# reference)

Используйте квалификатор псевдонима пространства имен :: для получения доступа к элементам пространства имен, обозначенного псевдонимом.Use the namespace alias qualifier :: to access a member of an aliased namespace. Квалификатор :: используется только между двумя идентификаторами.You can use the :: qualifier only between two identifiers. Левый идентификатор может быть любым из следующих псевдонимов:The left-hand identifier can be any of the following aliases:

  • Псевдоним пространства имен, созданный с помощью директивы псевдонима using:A namespace alias created with a using alias directive:

    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);
    }
    
  • Псевдоним extern.An extern alias.

  • Псевдоним global, который является псевдонимом глобального пространства имен.The global alias, which is the global namespace alias. Глобальное пространство имен — это пространство имен, которое содержит пространства имен и типы, не объявленные в именованном пространстве имен.The global namespace is the namespace that contains namespaces and types that are not declared inside a named namespace. При использовании с квалификатором :: псевдоним global всегда ссылается на глобальное пространство имен, даже если существует определяемый пользователем псевдоним пространства имен global.When used with the :: qualifier, the global alias always references the global namespace, even if there is the user-defined global namespace alias.

    В следующем примере используется псевдоним global для доступа к пространству имен .NET System, которое является элементом глобального пространства имен.The following example uses the global alias to access the .NET System namespace, which is a member of the global namespace. Без псевдонима global доступ к определяемому пользователем пространству имен System, которое является элементом пространства имен MyCompany.MyProduct, будет осуществляться следующим образом:Without the global alias, the user-defined System namespace, which is a member of the MyCompany.MyProduct namespace, would be accessed:

    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 является псевдонимом глобального пространства имен, только если оно является левым идентификатором квалификатора ::.The global keyword is the global namespace alias only when it's the left-hand identifier of the :: qualifier.

Можно также использовать маркер . для получения доступа к элементам пространства имен, обозначенного псевдонимом.You can also use the . token to access a member of an aliased namespace. При этом маркер . также используется для доступа к элементам типа.However, the . token is also used to access a type member. Квалификатор :: гарантирует, что его левый идентификатор всегда ссылается на псевдоним пространства имен, даже если существует тип или пространство имен с таким же именем.The :: qualifier ensures that its left-hand identifier always references a namespace alias, even if there exists a type or namespace with the same name.

Спецификация языка C#C# language specification

Дополнительные сведения см. в описании квалификаторов псевдонимов пространства имен в спецификации языка C#.For more information, see the Namespace alias qualifiers section of the C# language specification.

См. такжеSee also