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 Aliasglobal
stets auf den globalen Namespace, auch wenn ein benutzerdefinierter Namespacealiasglobal
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 denglobal
-Alias würde auf den benutzerdefiniertenSystem
-Namespace, der ein Member desMyCompany.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.