nameof expression (référence C)nameof expression (C# reference)

Une nameof expression produit le nom d’une variable, d’un type ou d’un membre comme constante de la chaîne :A nameof expression produces the name of a variable, type, or member as the string constant:

Console.WriteLine(nameof(System.Collections.Generic));  // output: Generic
Console.WriteLine(nameof(List<int>));  // output: List
Console.WriteLine(nameof(List<int>.Count));  // output: Count
Console.WriteLine(nameof(List<int>.Add));  // output: Add

var numbers = new List<int> { 1, 2, 3 };
Console.WriteLine(nameof(numbers));  // output: numbers
Console.WriteLine(nameof(numbers.Count));  // output: Count
Console.WriteLine(nameof(numbers.Add));  // output: Add

Comme le montre l’exemple précédent, dans le cas d’un type et d’un espace de noms, le nom produit n’est généralement pas complet.As the preceding example shows, in the case of a type and a namespace, the produced name is usually not fully qualified.

Une nameof expression est évaluée au moment de la compilation et n’a aucun effet au moment de l’exécution.A nameof expression is evaluated at compile time and has no effect at run time.

Vous pouvez nameof utiliser une expression pour rendre le code de vérification des arguments plus maintenable :You can use a nameof expression to make the argument-checking code more maintainable:

public string Name
{
    get => name;
    set => name = value ?? throw new ArgumentNullException(nameof(value), $"{nameof(Name)} cannot be null");
}

Une nameof expression est disponible en C 6 et plus tard.A nameof expression is available in C# 6 and later.

spécification du langage C#C# language specification

Pour plus d’informations, voir la section Expressions Nameof de la spécification du langage C#.For more information, see the Nameof expressions section of the C# language specification.

Voir aussiSee also