Utilise un delegate, ça sert à ça
C'est (grosso modo) l'équivalent des pointeurs de fonctions en C++
En gros, tu définis un delegate qui décrit la signature de la méthode que tu veux passer en paramètre :
delegate void MyMethodDelegate(object arg);
Tu déclares de la façon suivante le constructeur qui doit prendre cette méthode en paramètre :
1 2 3 4
| public MyClass(MyMethodDelegate method)
{
...
} |
Tu déclares une méthode qui correspond à ce delegate:
1 2 3 4
| private void MyMethod(object arg)
{
...
} |
Et tu passes cette fonction en paramètre du constructeur :
MyClass x = new MyClass(new MyMethodDelegate(MyMethod));
ou plus simplement :
MyClass x = new MyClass(MyMethod);
(conversion implicite en MyMethodDelegate)
Partager