Поделиться через


:: оператор — оператор псевдонима пространства имен

Используйте квалификатор :: пространства имен для доступа к члену псевдонима пространства имен. Квалификатор можно использовать :: только между двумя идентификаторами. Идентификатор слева может быть одним из псевдонимов пространства имен, экстерна или псевдонима global . Рассмотрим пример.

  • Псевдоним пространства имен, созданный с помощью директивы псевдонима:

    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#.

См. также