C# Delegaten

Hallo,

ich beginne gerade damit, mir C# beizubringen und bin dabei auf den Begriff bzw. das Konzept der Delegaten gestossen. Worum hndelt es sich dabei? soviel ich bis jetzt verstanden habe, sind das eine Art Stellvertreter für Methoden bzw. Funktionen. Stimmt das so? Und könnte mir jemand das Konzept etwas näher erläutern? Zum Beispiel en Einsatzzweck in der Praxis. Ist dies ein neues Konzept in Zusammenhang mit C#, oder gibt es vergleichbares auch in anderen Sprachen?

Danke und Grüße

palo

Hi!

Ein Delegat ist so eine Art ein typsicherer Funktionszeiger, über den i.d.R. eine Callback-Funktion angegeben wird.
Sowas ähnliches gibt’s z.B. in C/C++ oder VB auch.

Besonders oft kommen delegates bei Ereignissen zum Einsatz.
Wenn Du in einer Klasse ein Ereignis (event) definierst, das diese Klasse signalisieren kann, dann musst Du angeben, welche Signatur die Methode hat, die beim Eintreten des Ereignisses aufgerufen werden soll. Damit kann dann der Nutzer Deiner Klasse einen Delegaten einer beliebigen eigenen Methode (solange sie der geforderten Signatur entspricht) übergeben und Deine Klasse kann problemlos die - zum Kompilierzeitpunkt unbekannte - Methode aufrufen.

Gruß,
Martin

hi palo,

nur zwei links von meiner c#-lieblingsseite…:

http://www.codeproject.com/csharp/delegates-part1.asp
http://www.codeproject.com/csharp/eventdelegates.asp

auf der site weiter zu suchen steht dir frei :wink:

hth,

stefan