C# 10 - Améliorations apportées aux expressions lambda

C# 10 - Améliorations apportées aux expressions lambda

La version 10 du langage C# apporte quelques améliorations concernant les expressions lambda.

L’inférence de type a été améliorée. Dorénavant, il n’est plus nécessaire de préciser le type d’une variable contenant une fonction lambda. Nous pouvons simplement la déclarer avec le mot clé var. Voici un exemple :

var returnOne = () => 1;        

Jusqu’à la version 9 du langage C#, cette instruction aurait généré l’erreur de compilation suivante :

Impossible d'assigner expression lambda à une variable implicitement typée

Pour faciliter le travail du compilateur ou modifier le type de retour d’une expression lambda, il peut être précisé. Pour ce faire, il faut préfixer la fonction lambda par le type de retour souhaité :

var createException = Exception (bool b) => b ? new ArgumentNullException() : new DivideByZeroException();        

Les attributs peuvent désormais être appliqués aux fonctions lambda et à leurs paramètres. Comme précédemment, l’utilisation d’attributs imposera les parenthèses pour le paramètre i :

Func<int, bool> isEven = [Description("Valeur")] (i) => i % 2 == 0;        

Ou

var isEven = [Description("Valeur")] bool (int i) => i % 2 == 0;        


Aucun texte alternatif pour cette image


Identifiez-vous pour afficher ou ajouter un commentaire

Plus d’articles de James RAVAILLE

Autres pages consultées

Explorer les sujets