Je travaillais avec les délégués à l'action en C # dans l'espoir d'en apprendre davantage sur eux et de réfléchir aux domaines où ils pourraient être utiles.
Quelqu'un a-t-il utilisé le délégué d'action, et si oui, pourquoi? ou pourriez-vous donner des exemples où cela pourrait être utile?
Voici un petit exemple qui montre l'utilité du délégué Action
Notez que la méthode foreach itère la collection de noms et exécute la
print
méthode sur chaque membre de la collection. C'est un peu un changement de paradigme pour nous, développeurs C #, alors que nous nous dirigeons vers un style de programmation plus fonctionnel. (Pour plus d'informations sur l'informatique derrière cela, lisez ceci: http://en.wikipedia.org/wiki/Map_(higher-order_function) .Maintenant, si vous utilisez C # 3, vous pouvez lisser un peu cela avec une expression lambda comme ceci:
la source
Eh bien, une chose que vous pourriez faire est si vous avez un commutateur:
Et avec la puissance des actions, vous pouvez transformer ce commutateur en dictionnaire:
...
Ou vous pouvez aller plus loin:
....
Juste quelques exemples. Bien sûr, l'utilisation la plus évidente serait les méthodes d'extension Linq.
la source
Vous pouvez utiliser des actions pour les gestionnaires d'événements courts:
la source
J'ai utilisé le délégué d'action comme celui-ci dans un projet une fois:
tout ce qu'il fait est de stocker une action (appel de méthode) sur un type de contrôle afin que vous puissiez effacer tous les contrôles d'un formulaire à leurs valeurs par défaut.
la source
Pour un exemple de la façon dont Action <> est utilisée.
Console.WriteLine a une signature qui satisfait
Action<string>
.J'espère que cela t'aides
la source
Je l'utilise lorsque je traite des appels croisés illégaux.Par exemple:
Je dois remercier l'utilisateur Reed Copsey SO 65358 pour la solution. Ma question complète avec réponses est SO Question 2587930
la source
Je l'ai utilisé comme rappel dans un gestionnaire d'événements. Quand je déclenche l'événement, je passe une méthode prenant une chaîne comme paramètre. Voici à quoi ressemble la remontée de l'événement:
La méthode:
La est la déclaration de classe de l'événement Args:
De cette façon, je peux appeler la méthode transmise par le gestionnaire d'événements avec un paramètre pour mettre à jour les données. J'utilise ceci pour demander des informations à l'utilisateur.
la source
Nous utilisons beaucoup de fonctionnalités de délégué d'action dans les tests. Lorsque nous avons besoin de construire un objet par défaut et que nous devons ensuite le modifier. J'ai fait un petit exemple. Pour créer l'objet personne par défaut (John Doe), nous utilisons la
BuildPerson()
fonction. Plus tard, nous ajoutons aussi Jane Doe, mais nous modifions sa date de naissance, son nom et sa taille.la source