Event, Delegate

06/05/2010 - 22:18 von Markus Mayer | Report spam
Hallo,

hat jemand ein gute Zusammenfassung, Link, Beispiel.

Event
Delegate
Zusammenhang, man muss ja teils genau aufpassen.

Instanz hier nur der += oder -= Operator
Funktion

Was wird genau jetzt mit OnXXXXX angelegt.
Rezeptanleitung eben;-) Gibt es so etwas.
Die 2,3 typischen Fàlle.

Ist nicht schlecht.
http://www.guidetocsharp.de/Delegates.aspx


Viele Grüße Markus
 

Lesen sie die antworten

#1 Nicolas Pavlidis
07/05/2010 - 18:40 | Warnen spam
Hi!

On 06.05.2010 22:18, Markus Mayer wrote:
Hallo,

hat jemand ein gute Zusammenfassung, Link, Beispiel.

Event
Delegate
Zusammenhang, man muss ja teils genau aufpassen.



events in C# sind im Endeffekt nichts anderees als Collcetion von
irgendwelchen Delegates die mal direkt "alle auf einmal" aufrufen kann.

Beispielsweise ein Button der gedrückt wird weiß dass er gedrückt wurde,
weiß aber nicht wasss er dann tun soll, also teilt er es jenen mit die
daran Interesse gezeigt haben über diese even (Clicked) informiert zu
werden. Dieses Interesse bekundet man indem man mittels += einen
Eventhandeler an ein event bindet. Dieser Eventhandler ist irgedneine
Methode dessen Signatur zur Definition des entsprechenden Delegates passt.

Der Delegate ist sozusagen das Interface zwischen Jenem der das event
auslöst und jenem der es behandeln will.

public class EventPublisher
{
public delegate void PublishedEventhandler(string eventId);

public event PublishedEventhandler PublishedEvent;

private void OnPublishedEvent(String eventId)
{
if(this.PublishedEvent != null)
this.PublishedEvent(eventId);
}
}

public class EventSubscriber
{
public EventSubscriber(EventPublisher publisher)
{
publisher += this.ProcessEvent;
}

private void ProcessEvent(String eventId)
{
Console.WriteLine(eventId);
}
}

Was diese ominösen OnXXX - Methoden machen ist durch das Beispiel
vielleicht klar geworden, nàmlich nichts anderes als das Aufrufen der
Eventhandlerkette anzustoßen.

Die können natyyürlich auch noch mehr machen, aber im endeffekt wirklich
nötig sind sie nicht, da der selbe Code auch wo anders stehen kann. es
ist aber designtechnisch zu empfehlen solchen COde in eigenen Methoden
zu halten.


Vielleicht hilft die [1] noch einwenig weiter.

Als Basis des ganzen kann man sich das Observer - bzw. das
Publisher/Subscriber Designpattern anschaun dessen Implementierung C#
mit den Events mehr oder minder frei Haus liefert.

{1} bietet vielleicht eine detailiertere Beschreibung von events in C# /
.NET

HTH && LG
Nicolas

[1] http://openbook.galileocomputing.de...#Xxx130362

| Nicolas Pavlidis | Elvis Presly: |
| Student of SE & KM | "Into the goto" |
| http://pavnics-thoughts.blogspot.com |
| University of Technology, Graz|

Ähnliche fragen