(0) exportieren Drucken
Alle erweitern

delegate (C#-Referenz)

Die Deklaration eines Delegattyps hat folgendes Format:

public delegate void TestDelegate(string message);

Mit dem delegate-Schlüsselwort wird ein Referenztyp deklariert, mit dem eine benannte oder eine anonyme Methode gekapselt werden kann. Delegaten entsprechen den Funktionszeigern in C++, sie sind jedoch typsicher und geschützt. Anwendungsmöglichkeiten von Delegaten finden Sie unter Delegaten und Generische Delegaten.

Delegaten bilden die Grundlage für Ereignisse.

Ein Delegat kann instanziiert werden, indem er entweder einer benannten oder einer anonymen Methode zugeordnet wird. Weitere Informationen finden Sie unter Benannte Methoden und Anonyme Methoden.

Zur Verwendung mit benannten Methoden muss der Delegat mit einer Methode instanziiert werden, die eine zulässige Signatur hat. Weitere Informationen zum Grad der zulässigen Varianz bei der Methodensignatur finden Sie unter Kovarianz und Kontravarianz in Delegaten. Zur Verwendung mit anonymen Methoden werden der Delegat und der Code, dem er zugeordnet werden soll, zusammen deklariert. Beide Methoden zur Instanziierung von Delegaten werden in diesem Abschnitt erläutert.

using System;
// Declare delegate -- defines required signature:
delegate void SampleDelegate(string message);

class MainClass
{
    // Regular method that matches signature:
    static void SampleDelegateMethod(string message)
    {
        Console.WriteLine(message);
    }

    static void Main()
    {
        // Instantiate delegate with named method:
        SampleDelegate d1 = SampleDelegateMethod;
        // Instantiate delegate with anonymous method:
        SampleDelegate d2 = delegate(string message)
        { 
            Console.WriteLine(message); 
        };

        // Invoke delegate d1:
        d1("Hello");
        // Invoke delegate d2:
        d2(" World");
    }
}

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

  • 1.11 Delegaten

  • 15 Delegaten

Anzeigen:
© 2014 Microsoft