Je veux savoir s'il existe un moyen de passer une fonction à une autre fonction pour gérer son try/catch. Je travaille sur une base de code existante qui n'a aucune gestion d'exception.Comment passer une fonction en paramètre?
Répondre
regarder en délégués - http://msdn.microsoft.com/en-us/library/ms173171(v=vs.80).aspx
NOTE: Cette réponse porte sur le texte de la question plutôt que le titre, car le problème ne semble pas faire avec des fonctions de passage en tant que paramètres.
Il est un peu difficile de savoir exactement ce que vous essayez de faire, mais vous pouvez certainement invoquer des méthodes publiques dans votre propre bloc try…catch
. Ce que vous ne pouvez pas faire * est d'ajouter une gestion des erreurs aux appels existants vers cette fonction.
Vous pouvez à la place ajouter une gestion d'erreur de haut niveau qui vous donnera au moins l'opportunité de consigner les exceptions et de montrer aux utilisateurs une expérience d'échec plus gracieuse.
* pas raisonnablement
Fantastique texte d'exception, monsieur. A +. –
Regardez dans Actions. Ils vous permettront de passer une méthode anonyme en paramètre.
Cependant, je ne pense pas que cela puisse vous aider avec votre problème. Vous allez probablement vouloir refactoriser la base de code pour avoir une gestion correcte des exceptions.
Vous pouvez utiliser Lambda Expression
class Program
{
private static int Sum(int a, int b)
{
return a + b;
}
private static int Multiply(int a, int b)
{
return a * b;
}
private static int GetResult(Func<int, int, int> solver, int a, int b)
{
try {
return solver(a, b);
} catch {
}
return 0; // your default return
}
static void Main(string[] args)
{
var a = 2;
var b = 3;
var sum = GetResult(Sum, a, b);
var multiply = GetResult(Multiply, a, b);
}
Plus d'informations sur
Lambda Expressions (Guide de programmation C#)
http://msdn.microsoft.com/en-us/library/bb397687.aspx
délégué Func
- 1. Passer une fonction en paramètre dans jQuery?
- 2. passer une fonction comme paramètre
- 3. Passer une fonction (avec paramètres) en paramètre?
- 4. Comment passer une variable en tant que paramètre de fonction
- 5. Comment passer un paramètre à une fonction onTimer en flex?
- 6. Comment passer un paramètre à une fonction javascript en ligne
- 7. Comment passer une fonction en paramètre avec Boost :: Phoenix?
- 8. VIM Fonction Paramètre Passer
- 9. Passer une structure en tant que paramètre à une fonction
- 10. Passer une fonction générique comme paramètre
- 11. Passer une étiquette en tant que paramètre à une fonction
- 12. Passer une fonction en paramètre en javascript, erreur indéfinie
- 13. Passer une fonction définie comme paramètre
- 14. Passer une méthode en paramètre
- 15. Passer une méthode en tant que paramètre de fonction
- 16. Passer une classe en paramètre?
- 17. Comment passer une fonction générique en tant que paramètre à une autre fonction?
- 18. Comment passer une fonction avec 2 paramètres en tant que paramètre à une fonction?
- 19. Comment puis-je passer une fonction en tant que paramètre à une autre fonction dans Android?
- 20. Comment passer une fonction en tant que paramètre de fonction en Python
- 21. Passer une fonction en paramètre dans le schéma
- 22. Passer une fonction en paramètre mais obtenir des résultats inattendus
- 23. Passer une fonction avec des paramètres en paramètre?
- 24. Comment passer un paramètre de fermeture optionnel à une fonction?
- 25. Comment passer le tuple en tant que paramètre d'une fonction
- 26. Comment passer le paramètre à une fonction bash de shell
- 27. vb6 - Comment passer une fonction pour un paramètre?
- 28. Comment passer paramètre avec une fonction href et onclick
- 29. Comment passer un paramètre à une fonction Javascript définie dynamiquement?
- 30. Comment passer paramètre En retrofit
Je pense que cette question réponse se trouve le long des lignes de [Programmation Orientée Aspect] (http://en.wikipedia.org/wiki/Aspect-oriented_programming). Jetez un oeil un [PostSharp] (http://www.sharpcrafters.com/). – Ahmad