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.
Comparaison de syntaxe
Section intitulée « Comparaison de syntaxe »// Méthode anonymeFunc<int, int> anon = delegate(int x) { return x * x; };
// Expression lambdaFunc<int, int> lambda = x => x * x;Fonctionnalités exclusives aux lambdas
Section intitulée « Fonctionnalités exclusives aux lambdas »- 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 lambdaQuand utiliser les méthodes anonymes
Section intitulée « Quand utiliser les méthodes anonymes »- 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 () => ...Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »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.