Événements
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Une expression nameof
produit le nom d’une variable, d’un type ou d’un membre en tant que constante de chaîne. Une expression nameof
est évaluée au moment de la compilation et n’a aucun effet au moment de l’exécution. Lorsque l’opérande est un type ou un espace de noms, le nom produit n’est pas complet. L'exemple suivant illustre l'utilisation d’une expression nameof
:
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
List<int> 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
Vous pouvez utiliser une expression nameof
pour rendre le code de vérification des arguments plus gérable :
public string Name
{
get => name;
set => name = value ?? throw new ArgumentNullException(nameof(value), $"{nameof(Name)} cannot be null");
}
À compter de C# 11, vous pouvez utiliser une expression nameof
avec un paramètre de méthode à l’intérieur d’un attribut sur une méthode ou son paramètre. Le code suivant montre comment procéder pour un attribut sur une méthode, une fonction locale et le paramètre d’une expression lambda :
[ParameterString(nameof(msg))]
public static void Method(string msg)
{
[ParameterString(nameof(T))]
void LocalFunction<T>(T param) { }
var lambdaExpression = ([ParameterString(nameof(aNumber))] int aNumber) => aNumber.ToString();
}
Une expression nameof
avec un paramètre est utile lorsque vous utilisez les attributs d’analyse nullables ou l’attribut CallerArgumentExpression.
Lorsque l’opérande est un identificateur détaillé, le @
caractère ne fait pas partie du nom, comme l’illustre l’exemple suivant :
var @new = 5;
Console.WriteLine(nameof(@new)); // output: new
Pour plus d’informations, consultez la section Expressions Nameof de la spécification du langage C# et la spécification de fonctionnalité C# 11 - Portéenameof
étendue.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événements
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenant