Aller au contenu

Comparaison avec les lambdas

Contexte : Les lambdas sont plus concises et plus expressives que les méthodes anonymes. Elles sont la manière privilégiée d’écrire des fonctions en ligne en C# moderne.

// Méthode anonyme
Func<int, int> anon = delegate(int x) { return x * x; };
// Expression lambda
Func<int, int> lambda = x => x * x;
  • Conversion en arbre d’expressions (Expression<Func<T>>)
  • Inférence de type naturelle
  • Syntaxe plus courte pour les corps à une seule expression
Expression<Func<int, int>> expr = x => x * x; // fonctionne uniquement avec lambda
  • Vous devez omettre les paramètres (délégué sans paramètres mais acceptant n’importe lequel)
  • Vous ciblez C# 2.0
Action act = delegate { Console.WriteLine("Pas de paramètres"); };
// La lambda nécessiterait () => ...

Code .NET moderne : Privilégiez toujours les lambdas. Les méthodes anonymes ne sont utilisées que pour la rétrocompatibilité.

Exemple : La documentation Microsoft recommande les lambdas pour les nouveaux développements.