(0) exportieren Drucken
Alle erweitern
6 von 12 fanden dies hilfreich - Dieses Thema bewerten.

Delegaten (C#-Programmierhandbuch)

Ein Delegat ist ein Typ, der auf eine Methode verweist. Sobald einem Delegaten eine Methode zugewiesen wird, verhält er sich genau wie diese Methode. Wie im folgenden Beispiel kann die Delegatmethode wie jede andere Methode mit Parametern und Rückgabewerten verwendet werden:

public delegate int PerformCalculation(int x, int y);

Jede Methode, die mit der aus dem Rückgabetyp und aus Parametern bestehenden Signatur des Delegaten übereinstimmt, kann dem Delegaten zugewiesen werden. Dies ermöglicht das programmgesteuerte Ändern von Methodenaufrufen sowie die Integration von neuem Code in bereits vorhandene Klassen. Wenn Sie die Signatur des Delegaten kennen, können Sie Ihre eigene delegierte Methode zuweisen.

Diese Fähigkeit, als Parameter auf eine Methode zu verweisen, macht Delegaten ideal für das Definieren von Rückrufmethoden. Zum Beispiel könnte einem Sortieralgorithmus ein Verweis auf die Methode übergeben werden, die zwei Objekte vergleicht. Durch die Trennung des Vergleichscodes kann der Algorithmus auf eine allgemeinere Weise geschrieben werden.

Übersicht über Delegaten

Delegaten verfügen über folgende Eigenschaften:

  • Delegaten ähneln C++-Funktionszeigern, sind aber typsicher.

  • Delegaten ermöglichen es, Methoden als Parameter zu übergeben.

  • Delegaten können zum Definieren von Rückrufmethoden verwendet werden.

  • Delegaten können miteinander verkettet werden. So können beispielsweise mehrere Methoden für ein einziges Ereignis aufgerufen werden.

  • Methoden müssen nicht exakt mit der Signatur des Delegaten übereinstimmen. Weitere Informationen finden Sie unter Kovarianz und Kontravarianz

  • In C#, Version 2.0, wird das Konzept der anonymen Methoden eingeführt, das es ermöglicht, anstelle einer separat definierten Methode Codeblöcke als Parameter übergeben.

In diesem Abschnitt

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 1.11 Delegaten

  • 4.2.6 Delegattypen

  • 7.5.5.2 Delegataufrufe

  • 15 Delegaten

Siehe auch

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.