Allgemeines Event Konzept 31.03.2017 Allgemeines Event Konzept Götz Winterfeldt
Objectives Verstehen was unterDelegate verstanden wird Ein Delegate realisieren Verstehen, was unter einem Event verstanden wird Events realisieren
Delegates sind Aliase Einfach gesprochen ist ein Delegate ein Funktionsaufruf, der auf einem Platzhalter gespeichert wird Anstatt, dass sie die Methode : myclass.run(); aufrufen Möchten sie schreiben können: Run(); Ein Delegate ist somit ein Funktionsaufruf, den sie einer Variable übergeben.
Ein einfaches Beispiel Delegates werden durch das Schlüsselwort delegate erzeugt Dem Schlüsselwort folgt die Deklaration des Aufrufes public delegate void doIt(int i); Sie weisen der Delegatevaribale während der Laufzeit den auszuführenden Code zu
Simple example Delegates In order to make use of the delelegate. Either a static or non static function can be linked to the statement Writer testWriter = new DelegateEx().write1; Now Writer() would execute the function DelegateEx.write1
Delegates Delegates kapseln in gewisser Weise Methodenaufrufe Sie müssen Delegates mit grosser Vorsicht einsetzten, da sie im Allgemeinen eine instanzierte Klasse nutzen müssen Durch Delegates können sie relativ intelligente Programme schreiben, die nicht unbedingt sehr lesbar sein müssen.
Listen von Funktionsaufrufen Sie können Funktionsaufrufe innerhalb einer Delegate speichern Wenn sie eine Liste erstellen werden die Funktionen nach der Reihenfolge in der sie der Funktion hinzugefügt wurden ausgeführt Sie addieren Funktionsaufrufe mittels der +Operators zu der Liste
Events Events werden zur Nachrichtenübermittlung voneinander unabhängiger Klassen genutzt Sie implementieren Events normalerweise unter zu Hilfenahme des delegate Konzeptes Events sind nicht nur an Interfaces gebunden, sondern sie können Events allgemein nutzten, wenn ein Element ein anderes über Statusänderungen informieren möchten
Basic event model Events werden durch das erste Element ausgelöst , aber durch das zweite Element ausgeführt event message Object Object event parse message call appropriate event handler event handler response
Events Einem Event wird jeweils eine aufzurufende Funktion in Form eines Delegates zu geordnet Events werden durch das Schlüsselwort event eingeführt und müssen ein delegate bezeichnen Events sind Elemente, die einer Klasse zugeordnet sind
Einen allgemeinen Event kreiieren Definieren des Objektes, das das Event auslösen soll Das Event wird ausgelöst, sobald eine bestimmte Bedingung erfolgt ist Bitte beachten sie, dass die eigentliche Funktion, die ausgeführt werden soll noch unbekannt ist
Messages Nachrichten sind Datenstrukturen, die übergeben werden Achten sie darauf Werte zu setzten, die sie mitgeben wollen Die Struktur kann beliebig erweitert werden
Empfänger Empfänger erhalten Nachrichten und führen diese dann aus Der Reciever muss eine Funktion implementieren, die im Hinblick auf Parameter und Returnwert den Anforderungen des Delegates entspricht
Das Zusammenspiel Sie kreieren den Sender, dieser besitzt eine Position zur Speicherung einer ausführbaren Funktion (event) Sie kreieren den Reciever Sie weisen die Funktion, die ausgeführt werden soll, wenn ein Event eintritt dem Eventhandler zu Sie starten die Applikation
Sender – Receiver Events raised by object1, but handled by object2 message event parse message call appropriate event handler event handler
Zusammenfassung Delegates sind “Methoden”, die während der Laufzeit übergeben werden Beachten sie, das delegates als Methoden einer Klasse realisiert werden müssen (Parameter und Return Wert) Events halten delegates Sobald eine Event ausgeführt wird, wird der Aufruf an ein Delegate weitergeleitet. Dies ist eine Methode einer realisierten Klasse