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'alias global fa sempre riferimento allo spazio dei nomi globale, anche se è presente l'alias dello spazio dei nomi global 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'alias global, verrà eseguito l'accesso allo spazio dei nomi System definito dall'utente, che è un membro dello spazio dei nomi 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";
        }
    }
    

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

Vedi anche