Verständisproblem - Zusammenhänge Ereignis und Delegat

30/08/2009 - 22:38 von Josef Morlo | Report spam
Hallo!

Ich lese in der Dokumentation

<Zitat>
Sie können zwar auch eigene Delegaten erstellen, doch in den meisten Fàllen
generiert Visual Basic den Delegaten und verarbeitet die Details. Eine
Event-Anweisung definiert z. B. implizit eine Delegatklasse mit dem Namen
<EventName>EventHandler als geschachtelte Klasse der Klasse, die die
Event-Anweisung enthàlt, und mit der gleichen Signatur wie das Ereignis.
Die AddressOf-Anweisung erstellt implizit eine Instanz eines Delegaten. Die
folgenden beiden Codezeilen sind z. B. gleichbedeutend:

AddHandler Button1.Click, AddressOf Me.Button1_Click

' The previous line of code is shorthand for the next line of code.
AddHandler Button1.Click, New EventHandler(AddressOf Button1_Click)
</Zitat>

Mir ist zwar klar, wie ich Ereignissen dynamisch einen Handler zuweise,
aber was ist mit der zitierten zweiten Codezeile eigentlich gemeint? Könnte
mir bitte jemand mal ein Beispiel geben, das darauf aufsetzt?

Danke und Gruß
Josef Morlo
 

Lesen sie die antworten

#1 Armin Zingler
30/08/2009 - 23:00 | Warnen spam
Josef Morlo schrieb:

Hallo!

Ich lese in der Dokumentation

<Zitat>
Sie können zwar auch eigene Delegaten erstellen, doch in den meisten Fàllen
generiert Visual Basic den Delegaten und verarbeitet die Details. Eine
Event-Anweisung definiert z. B. implizit eine Delegatklasse mit dem Namen
<EventName>EventHandler als geschachtelte Klasse der Klasse, die die
Event-Anweisung enthàlt, und mit der gleichen Signatur wie das Ereignis.
Die AddressOf-Anweisung erstellt implizit eine Instanz eines Delegaten. Die
folgenden beiden Codezeilen sind z. B. gleichbedeutend:

AddHandler Button1.Click, AddressOf Me.Button1_Click

' The previous line of code is shorthand for the next line of code.
AddHandler Button1.Click, New EventHandler(AddressOf Button1_Click)
</Zitat>

Mir ist zwar klar, wie ich Ereignissen dynamisch einen Handler zuweise,
aber was ist mit der zitierten zweiten Codezeile eigentlich gemeint?



Dasselbe wie mit der ersten.

Könnte
mir bitte jemand mal ein Beispiel geben, das darauf aufsetzt?



Wie meinst du das? Der Code ist ja schon ein Beispiel. Es wird ein
Delegat erzeugt, das auf die Methode [Me.]Button1_Click verweist. Dieses
Delegat wird als Handler dem Click-Ereignis hinzugefügt. Die erste
Codezeile macht dasselbe, nur, dass einem der VB-Compiler intern die
Erzeugung des Delegats abnimmt. Beide Zeilen sind identisch und werden
zum selben IL-Code kompiliert.


Armin

Ähnliche fragen