Aller au contenu

Délégués génériques Action Func Predicate

Contexte : Le framework .NET fournit des délégués génériques pour les signatures courantes, évitant ainsi de déclarer des délégués personnalisés.

Pour les méthodes qui retournent void. Jusqu’à 16 paramètres.

Action print = () => Console.WriteLine("Hello");
Action<string> log = (msg) => Console.WriteLine(msg);
Action<int, int> addAndPrint = (a, b) => Console.WriteLine(a + b);

Pour les méthodes qui retournent une valeur. Le dernier paramètre de type est le type de retour.

Func<int> getNumber = () => 42;
Func<string, int> getLength = (s) => s.Length;
Func<int, int, int> add = (a, b) => a + b;

Retourne bool. Équivalent à Func<T, bool>.

Predicate<int> isEven = (x) => x % 2 == 0;
bool result = isEven(4); // true

Requêtes LINQ : Where utilise Func<TSource, bool> (un prédicat). ForEach utilise Action<T>. Select utilise Func<TSource, TResult>.

Exemple : Enumerable.Where attend un délégué Func<TSource, bool>.