C# ist eine objektorientierte Programmiersprache, welche unsichere Elemente, wie etwa Zeiger (Pointer), grundsätzlich vermeidet. Dennoch sind Zeiger nicht nur in Augen von C/C++-Entwicklern in einigen Fällen einfach notwendig, so z.B. die Funktionszeiger.
Delegates sind Funktionszeiger in C#. Sie zeigen auf mindestens eine Funktion bzw. Methode. Benutzt wird ein Delegate in C# zum Beispiel für Events.
Ein Delegate wird in C# nach folgendem Schema definiert:
[Öffentlichkeitsparameter] delegate Rückgabewert Delegatename ([Methodenparametertyp Methodenparametername] );Das Delegate weiß bereits im Vorfeld über die Parameter und dem Rückgabewert der Methode(n) bescheid, auf die es später verweisen soll.
Im nachfolgendem Beispiel ist ein Delegate in einer Klasse definiert, welches…
[csharp]
public delegate string FPointer (int index);
[/csharp]