:: opérateur - opérateur d’alias d’espace de noms

Utilisez le qualificateur d’alias d’espace de noms :: pour accéder au membre d’un espace de noms avec alias. Vous ne pouvez utiliser le qualificateur :: qu’entre deux identificateurs. L’identificateur de gauche peut être un alias d’espace de noms, un alias externe ou l’alias global. Par exemple :

  • Un alias d’espace de noms créé avec la directive using alias :

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

  • L’alias global, qui est l’alias d’espace de noms global. L’espace de noms global est l’espace de noms qui contient des espaces de noms et des types qui ne sont pas déclarés dans un espace de noms nommé. Quand il est utilisé avec le qualificateur ::, l’alias global référence toujours l’espace de noms global, même si l’alias d’espace de noms global défini par l’utilisateur est présent.

    L’exemple suivant utilise l’alias global pour accéder à l’espace de noms .NET System, qui est un membre de l’espace de noms global. Sans l’alias global, l’accès se ferait à l’espace de noms System défini par l’utilisateur, qui est un membre de l’espace de noms 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";
        }
    }
    

    Notes

    Le mot clé global est l’alias d’espace de noms global seulement quand il s’agit de l’identificateur de gauche du qualificateur ::.

Vous pouvez également utiliser le jeton . pour accéder à un membre d’un espace de noms avec alias. Toutefois, le jeton . est également utilisé pour accéder à un membre de type. Le qualificateur :: garantit que son identificateur de gauche référence toujours un alias d’espace de noms, même s’il existe un type ou un espace de noms portant le même nom.

spécification du langage C#

Pour plus d’informations, consultez la section Qualificateurs d’alias d’espace de noms de la spécification du langage C#.

Voir aussi