Oh, oh - 2 völlig Unwissende
Ein
Delegate ist nichts anderes als eine Methodensignatur, d.h. es bestimmt den Rückgabewert sowie die Parameter, z.B.
C#-Quelltext
1:
| delegate int MyDelegate(string s, bool b); |
Sobald nun eine Methode ein Delegate als Parameter hat, z.B.
C#-Quelltext
1:
| void DoSomething(MyDelegate del) |
kann man diese Methode nun mit jeder Methode als Parameter aufrufen, die dieselbe Signatur (*) wie der Delegate haben.
Um nun eine Methode als Parameter zu übergeben gibt es mehrere Möglichkeiten:
1. eine benannte Methode
2. eine
anonyme Methode
3. ein
Lambda-Ausdruck
(*) Erweiterte Stichworte sind
Kovarianz und Kontravarianz (Co- and Contravariance), so daß auch ähnliche Methoden übergeben werden können...