Tous les delegates Func renvoient une valeur. Quels sont les delegates .NET qui peuvent être utilisés avec des méthodes qui renvoient un vide?
… ne prend aucun argument et a un type de retour nul?
Je pense que l’ Action
est une solution à ce problème.
Tous les delegates Func prennent au moins un paramètre
Ce n’est pas vrai. Ils prennent tous au moins un argument de type, mais cet argument détermine le type de retour.
Donc, Func
n’accepte aucun paramètre et renvoie une valeur. Utilisez Action
ou Action
lorsque vous ne souhaitez pas retourner une valeur.
Essayez System.Func
et System.Action
Vous souhaiterez parfois écrire un délégué pour la gestion des événements, auquel cas vous pourrez tirer parti de System.EvenHandler
qui accepte implicitement un argument de type object
en plus du second paramètre qui devrait dériver de EventArgs
. Les EventHandlers seront void
J’ai personnellement trouvé cela utile lors des tests pour créer un rappel unique dans un corps de fonction.
… ne prend aucun argument et a un type de retour nul?
Si vous écrivez pour System.Windows.Forms
, vous pouvez également utiliser:
public delegate void MethodInvoker()
Un moyen très simple d’invoquer des sous-programmes de valeur de retour et de non-retour. utilise respectivement Func et Action . (voir aussi https://msdn.microsoft.com/en-us/library/018hxwa8(v=vs.110).aspx )
Essayez cet exemple
using System; public class Program { private Func FunctionPTR = null; private Func FunctionPTR1 = null; private Action