Forums Neueste Beiträge
 

Allgemeine Frage zur OO-Programmierung

22/04/2009 - 14:01 von Andreas Müller | Report spam
Hallo NG,

schön langsam fange ich an mich mit dem objektorientierten Konzept wohl zu
fühlen und auch so "zu denken". Nur für das Konzept der eigenen Events für
meine Klasse habe ich noch keinen Sinn erkannt. Jedes Mal wenn ich an den
Punkt komme ein eigenes Event zu definieren, merke ich daß ich dieses dann
an passender Stelle einfach auslöse. Aber genau das gleiche könnte ich ja
auch erreichen wenn ich den Code in eine Methode packe und dann an gleicher
Stelle einfach anstatt des Ereignisses die Instanzmethode aufrufe. Wo ist
der Vorteil des Events? Wann brauche ich ihn wirklich?

Danke für eure Ausführungen und beste Grüße!
 

Lesen sie die antworten

#1 Armin Zingler
22/04/2009 - 14:49 | Warnen spam
Andreas Müller wrote:
Hallo NG,

schön langsam fange ich an mich mit dem objektorientierten Konzept
wohl zu fühlen und auch so "zu denken". Nur für das Konzept der
eigenen Events für meine Klasse habe ich noch keinen Sinn erkannt.
Jedes Mal wenn ich an den Punkt komme ein eigenes Event zu
definieren, merke ich daß ich dieses dann an passender Stelle einfach
auslöse. Aber genau das gleiche könnte ich ja auch erreichen wenn ich
den Code in eine Methode packe und dann an gleicher Stelle einfach
anstatt des Ereignisses die Instanzmethode aufrufe.



Habe ich jetzt ehrlich gesagt nicht so ganz verstanden.

Wo ist der
Vorteil des Events? Wann brauche ich ihn wirklich?



Woher würdest du sonst bei einem Button wissen, ob er angeklickt wurde? Das
teilt er dir über ein Event mit. Du findest im Framework ja noch tausend
andere Beispiele für Events. Ein Event kann beliebig viele Empfànger haben
wàhrend ein Methodenaufruf eben genau eine Methode aufruft (Delegate). Wenn
du mit Addhandler einen Ereignishandler registrierst, dann ist das im
Prinzip nichts anderes, als den Ereignishandler in eine Liste einzutragen
(intern verwaltet als MulticastDelegate), und "RaiseEvent" bedeutet, alle
Ereignishandler in dieser Liste aufzurufen.


Armin

Ähnliche fragen