Freigeben über


Operator „::“: der Operator für den Namespacealias

Verwenden Sie den Namespacealias-Qualifizierer ::, um auf einen Member eines Namespace mit Alias zuzugreifen. Sie können den ::-Qualifizierer nur zwischen zwei Bezeichnern verwenden. Der linke Bezeichner kann entweder ein Namespacealias, ein externer Alias oder der Alias global sein. Beispiel:

  • Ein mit einer using alias-Anweisung erstellter Namespacealias:

    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);
    }
    
  • Ein externer Alias.

  • Der global-Alias, ein globaler Namespacealias. Der globale Namespace enthält Namespaces und Typen, die nicht in einem benannten Namespace deklariert sind. Bei Verwendung mit dem Qualifizierer :: verweist der Alias global stets auf den globalen Namespace, auch wenn ein benutzerdefinierter Namespacealias global vorhanden ist.

    Im folgenden Beispiel wird der global-Alias verwendet, um auf den .NET-Namespace System zuzugreifen, der ein Member des globalen Namespace ist. Ohne den global-Alias würde auf den benutzerdefinierten System-Namespace, der ein Member des MyCompany.MyProduct-Namespace ist, zugegriffen:

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

    Hinweis

    Das Schlüsselwort global ist nur dann der globale Namespacealias, wenn es sich um den linken Bezeichner des ::-Qualifizierers handelt.

Sie können auch das .-Token verwenden, um auf einen Member eines Namespace mit Alias zuzugreifen. Allerdings wird das .-Token auch verwendet, um auf einen Typmember zuzugreifen. Der Qualifizierer :: stellt sicher, dass sein linker Bezeichner immer auf einen Namespacealias verweist, selbst wenn ein Typ oder ein Namespace mit demselben Namen vorhanden ist.

C#-Sprachspezifikation

Weitere Informationen finden Sie im Abschnitt Namespacealias-Qualifizierer der C#-Sprachspezifikation.

Weitere Informationen