Tweakers,
Na veel gelezen te hebben over .Net 2005 (en nu natuurlijk ook 2008) ben ik fanatiek aan de slag gegaan met C#. Heerlijke taal, feeling van Java. Afijn, nu zit ik met het volgende dilemma.
Ik heb een aantal clients die een interface implemteren (zie ListenerInterface). Deze dienen te luisteren naar de class Thing. Wanneer de methode fireFooEvent wordt aangeroepen, wordt ook van iedere listener de fooEvent methode aangeroepen. Dit geldt ook voor het fireBar Event. Alles werkt naar behoren. Echter moet ik nu voor ieder event dat gefired moet kunnen worden door alle clienten lopen (met de foreach).
De vraag:
Is het ook mogelijk om één methode te schrijven waaraan je meegeeft welke methode van de client moet worden aangeroepen, en met welke argumenten dit moet gebeuren?
Na veel gelezen te hebben over .Net 2005 (en nu natuurlijk ook 2008) ben ik fanatiek aan de slag gegaan met C#. Heerlijke taal, feeling van Java. Afijn, nu zit ik met het volgende dilemma.
Ik heb een aantal clients die een interface implemteren (zie ListenerInterface). Deze dienen te luisteren naar de class Thing. Wanneer de methode fireFooEvent wordt aangeroepen, wordt ook van iedere listener de fooEvent methode aangeroepen. Dit geldt ook voor het fireBar Event. Alles werkt naar behoren. Echter moet ik nu voor ieder event dat gefired moet kunnen worden door alle clienten lopen (met de foreach).
De vraag:
Is het ook mogelijk om één methode te schrijven waaraan je meegeeft welke methode van de client moet worden aangeroepen, en met welke argumenten dit moet gebeuren?
C#:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| public Class Thing { private ArrayList listeners; private int a; private string b; public Thing() { listeners = new ArrayList(); } public void addListener(ListenerInterface listener) { listeners.Add(listener); } public void removeListener(ListenerInterface listener) { listeners.Remove(listener); } public void fireFooEvent(){ foreach (ListenerInterface l in listeners) { I.fooEvent(a); } } public void fireBarEvent(){ foreach (ListenerInterface l in listeners) { I.barEvent(b); } } } public Interface ListenerInterface { void fooEvent(int a); void barEvent(string b); } |
[gvr]muze[nl] says: fear is the mind killer