En C# comment définir la fonction fonction de retour qui ne renvoie rien? Quelque chose comme ceci:Fonction de retour de fonction d'ordre supérieur ne renvoyant rien
class X
{
public Func<void> GetFuncReturningVoid() { ... }
}
En C# comment définir la fonction fonction de retour qui ne renvoie rien? Quelque chose comme ceci:Fonction de retour de fonction d'ordre supérieur ne renvoyant rien
class X
{
public Func<void> GetFuncReturningVoid() { ... }
}
Une fonction retournant rien est Action
. En utilisant une expression lambda, vous pouvez écrire ceci:
Action GetFuncReturningVoid() {
return() => Console.Writeline("my action");
}
Et si vous avez besoin d'accepter des arguments ...
Action<int, int> GetActionWithArguments() {
return (int x, int y) => Console.Writeline(x * y);
}
Ou vous pouvez laisser le compilateur déduire les types:
Action<int, int> GetActionWithArguments() {
return (x, y) => Console.Writeline(x * y);
}
En général, Action
s sont des "actions": ils font quelque chose, mais ne retournent rien. Func
s sont des «fonctions», au sens mathématique: elles transforment une valeur en une autre.
Donc, vous voulez quelque chose comme Action
, ou Action<T>
(pour un argument de type T
), ou Action<T, U>
, etc.