Quelqu'un peut-il fournir une bonne explication (avec des exemples, si possible) de ces 3 délégués les plus importants ?
- Prédicat
- Action
- Func
Quelqu'un peut-il fournir une bonne explication (avec des exemples, si possible) de ces 3 délégués les plus importants ?
Predicate, Func et Action sont des instances de délégués intégrées à .NET. Chacune de ces instances de délégué peut faire référence ou pointer vers des méthodes utilisateur avec une signature spécifique.
Délégué d'action - Les instances de délégué d'action peuvent pointer vers des méthodes qui prennent des arguments et renvoient un résultat nul.
Délégué Func - L'instance du délégué Func peut pointer vers une ou plusieurs méthodes qui prennent un nombre variable d'arguments et renvoient un certain type.
Prédicat - Les prédicats sont similaires aux instances de délégués func et ils peuvent pointer vers des méthodes qui prennent un nombre variable d'arguments et renvoient un type bool.
Action et Func avec lambda :
person p = new person();
Action<int, int> mydel = p.add; /*(int a, int b) => { Console.WriteLine(a + b); };*/
Func<string, string> mydel1 = p.conc; /*(string s) => { return "hello" + s; };*/
mydel(2, 3);
string s1= mydel1(" Akhil");
Console.WriteLine(s1);
Console.ReadLine();
Func est plus convivial pour LINQ, peut être passé en paramètre. (sans point)
Le prédicat ne peut pas, il doit être enveloppé à nouveau.
Predicate<int> IsPositivePred = i => i > 0;
Func<int,bool> IsPositiveFunc = i => i > 0;
new []{2,-4}.Where(i=>IsPositivePred(i)); //Wrap again
new []{2,-4}.Where(IsPositivePred); //Compile Error
new []{2,-4}.Where(IsPositiveFunc); //Func as Parameter
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.