Bonjour,
Je cherche comment faire pour passer une méthode en paramètre, mais sans avoir l'instance sur laquelle elle sera exécuté.
En clair, j'ai une classe Conteneur. dans cette classe il y a une méthode Ajoute(Object objet).
Dans une autre classe Alimenteur, dédié à alimenter ce conteneur, je voudrais lui passer cette méthode Ajoute(..) pour qu'il l'execute dans la suite du programme. En revanche, l'instance de Conteneur, ne sera connu que lorsque l'on demandera à l'instance d'Alimenteur d'alimenter le Conteneur.
Bien entendu, si je demande cela, c'est que parfois ce sera la méthode Ajoute(..) qui devra être executée, et d'autre fois ce sera une propriété.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 class Conteneur { ... public void Ajoute(Object objet){ .... } } class Alimenteur { private Methode _methodeDAjout; public Alimenteur(XXXXXXX c est ici que je souhaite fournir la méthode à executer) { .... } public void Alimente(Conteneur conteneur) { Contenu contenu = new Contenu(); ..... //Execution de la méthode d'ajout sur l'instance de conteneur //conteneur.Ajoute(contenu); } }
Je n'ai pas la main sur les classes Conteneur et Contenu, mais je dois les alimenter.
Je pensais arriver à mes fins en passant par les Action<T>. Mais T défini le type du paramètre. Rien ne fait référence à la classe exécutant la méthode.
Donc, suis-je condamnée à passer par la classe Method, ou existe-t-il un autre moyen?
Merci
Partager