Operatore :: - Operatore alias dello spazio dei nomi
Usare il qualificatore di alias dello spazio dei nomi ::
per accedere a un membro di uno spazio dei nomi con alias. È possibile usare il qualificatore ::
solo tra due identificatori. L'identificatore a sinistra può essere uno degli alias dello spazio dei nomi, un alias esterno o l'alias global
. Ad esempio:
Un alias dello spazio dei nomi creato con una direttiva alias using:
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); }
Un alias extern.
L'alias
global
, ovvero l'alias dello spazio dei nomi globale. Lo spazio dei nomi globale è lo spazio dei nomi che contiene gli spazi dei nomi e i tipi non dichiarati all'interno di uno spazio dei nomi denominato. Quando viene usato con il qualificatore::
, l'aliasglobal
fa sempre riferimento allo spazio dei nomi globale, anche se è presente l'alias dello spazio dei nomiglobal
definito dall'utente.Nell'esempio seguente viene usato l'alias
global
per accedere allo spazio dei nomi .NET System, che è un membro dello spazio dei nomi globale. Senza l'aliasglobal
, verrà eseguito l'accesso allo spazio dei nomiSystem
definito dall'utente, che è un membro dello spazio dei nomiMyCompany.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"; } }
Nota
La parola chiave
global
è l'alias dello spazio dei nomi globale solo quando è l'identificatore di sinistra del qualificatore::
.
È anche possibile usare il token .
per accedere a un membro di uno spazio dei nomi con alias. Tuttavia, il token .
viene usato anche per accedere a un membro del tipo. Il qualificatore ::
garantisce che il relativo identificatore di sinistra faccia sempre riferimento a un alias dello spazio dei nomi, anche se esiste un tipo o uno spazio dei nomi con lo stesso nome.
Specifiche del linguaggio C#
Per altre informazioni, vedere la sezione Qualificatori di alias dello spazio dei nomi della specifica del linguaggio C#.