Passer d'une méthode en tant que paramètre
Je veux être en mesure de passer à une méthode en tant que paramètre.
par exemple..
//really dodgy code
public void PassMeAMethod(string text, Method method)
{
DoSomething(text);
//call the method
//method1();
Foo();
}
public void methodA()
{
//Do stuff
}
public void methodB()
{
//Do stuff
}
public void Test()
{
PassMeAMethod("calling methodA", methodA)
PassMeAMethod("calling methodB", methodB)
}
Comment puis-je faire cela?
Vous devriez être en mesure de le faire avec les délégués.
La version de l' .NET framework êtes-vous en cours d'exécution?
3.5, quelqu'un peut-il me montrer à l'aide de l'exemple ci-dessus? merci
La version de l' .NET framework êtes-vous en cours d'exécution?
3.5, quelqu'un peut-il me montrer à l'aide de l'exemple ci-dessus? merci
OriginalL'auteur raklos | 2010-10-25
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser un délégué, qui est une classe spéciale qui représente une méthode. Vous pouvez définir votre propre délégué ou d'utiliser l'un des construite en, mais la signature du délégué doit correspondre à la méthode que vous souhaitez passer.
De définir votre propre:
Cet exemple correspond à une méthode qui retourne un entier et prend une référence d'objet en tant que paramètre.
Dans votre exemple, les deux methodA et methodB prennent pas de paramètres de retour void, donc on peut utiliser le construit dans l'Action du délégué de classe.
Ici est votre exemple modifié:
Comme vous pouvez le voir, vous pouvez utiliser le type de délégué explicitement ou implicitement, selon ce qui vous convient.
OriginalL'auteur Steve Whitfield
Utilisation
Action<T>
Exemple:
OriginalL'auteur BrunoLM
Ou Func<>
OriginalL'auteur Gerardo Grignoli
Les délégués sont le langage de la fonctionnalité que vous allez avoir besoin d'utiliser pour accomplir ce que vous essayez de faire.
Voici un exemple en utilisant le code ci-dessus (à l'aide de la
Action
délégué comme un raccourci):OriginalL'auteur Justin Niessner
S'appuyant sur ce qui BrunoLM fait, comme cet exemple a été brève.
this
dans un static void?OriginalL'auteur cliss
c# .net2.0 - Laissez-moi vous montrer une réponse détaillée pour le sujet (pass-a-méthode-comme-un-paramètre).
Dans mon scénario, je suis à la configuration d'un ensemble de Système.Les minuteries.Minuterie-s, chacun avec un autre _Tick) méthode.
OriginalL'auteur snir