:: operator – namnområdesaliasoperatorn

Använd namnområdesaliaskvalificeraren :: för att få åtkomst till en medlem i ett aliasnamnområde. Du kan bara använda kvalificeraren :: mellan två identifierare. Den vänstra identifieraren kan vara ett av ett namnområdesalias, ett externt alias eller aliaset global . Till exempel:

  • Ett namnområdesalias som skapats med hjälp av ett aliasdirektiv:

    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);
    }
    
  • Ett externt alias.

  • Aliaset global , som är det globala namnområdesaliaset. Det globala namnområdet är det namnområde som innehåller namnområden och typer som inte deklareras i ett namngivet namnområde. När det används med kvalificeraren :: refererar aliaset global alltid till det globala namnområdet, även om det finns det användardefinierade global namnområdesaliaset.

    I följande exempel används aliaset global för att komma åt .NET-namnområdet System , som är medlem i det globala namnområdet. Utan aliaset global skulle det användardefinierade System namnområdet, som är medlem i MyCompany.MyProduct namnområdet, nås:

    namespace MyCompany.MyProduct.System
    {
        class Program
        {
            static void Main() => global::System.Console.WriteLine("Using global alias");
        }
    
        class Console
        {
            string Suggestion => "Consider renaming this class";
        }
    }
    

    Kommentar

    Nyckelordet global är endast det globala namnområdesaliaset när det är den vänstra identifieraren för kvalificeraren :: .

Du kan också använda . token för att komma åt en medlem i ett aliasnamnområde. Token används dock . också för att komma åt en typmedlem. Kvalificeraren :: ser till att dess vänstra identifierare alltid refererar till ett namnområdesalias, även om det finns en typ eller ett namnområde med samma namn.

Språkspecifikation för C#

Mer information finns i avsnittet Namnområdesaliaskvalificerare i C#-språkspecifikationen.

Se även