Attribuer dynamiquement de la méthode / de la Méthode en tant que variable
Donc, j'ai 2 classes nommées A et B.
Un a une méthode "public void Foo()".
B a plusieurs autres méthodes.
Ce dont j'ai besoin est une variable de classe B, qui sera attribué le Foo() la méthode de la classe A.
Cette variable doit ensuite être "exécuté" (=> donc, il faut exécuter la assignés méthode de classe A).
Comment faire?
Vous devez vous connecter pour publier un commentaire.
Reed vous a donné la bonne réponse. Il est également à noter que vous pouvez utiliser d'autres délégué signatures en plus de l'Action.
Il y a des versions génériques comme
Action<T>
(un arg),Action<T1, T2>
(deux arguments), etc...Aussi, si votre méthode a un type de retour, découvrez
Func<T, TResult>
.Ou bien sûr, vous pouvez définir votre propre type de délégué.
Il semble que vous souhaitez utiliser un délégué ici.
Fondamentalement, vous pouvez ajouter, dans la classe "B":
Vous pouvez ensuite définir:
Ce serait d'imprimer "Foo" puis "Barre".
Action
vous permettra d'utiliser une méthode qui ne retourne pas de valeur et ne prend pas de paramètres. Vous pouvez utiliserFunc<int,string>
si vos méthodes prennent tous un int et de retourner une chaîne de caractères, par exemple.