event (C#-Referenz)

Aktualisiert: November 2007

Das event-Schlüsselwort wird verwendet, um in einer Herausgeberklasse ein Ereignis zu deklarieren.

Beispiel

Im folgenden Beispiel wird gezeigt, wie ein Ereignis, das EventHandler als zugrunde liegenden Delegattyp verwendet, deklariert und ausgelöst wird. Das vollständige Codebeispiel, das zudem die Verwendung des generischen EventHandler<TEventArgs>-Delegattyps, das Abonnieren eines Ereignisses und das Erstellen einer Ereignishandlermethode veranschaulicht, finden Sie unter Gewusst wie: Veröffentlichen von Ereignissen, die den .NET Framework-Richtlinien entsprechen (C#-Programmierhandbuch).

public class SampleEventArgs
{
    public SampleEventArgs(string s) { Text = s; }
    public String Text {get; private set;} // readonly
}
public class Publisher
{
    // Declare the delegate (if using non-generic pattern).
    public delegate void SampleEventHandler(object sender, SampleEventArgs e);

    // Declare the event.
    public event SampleEventHandler SampleEvent;

    // Wrap the event in a protected virtual method
    // to enable derived classes to raise the event.
    protected virtual void RaiseSampleEvent()
    {
        // Raise the event by using the () operator.
        SampleEvent(this, new SampleEventArgs("Hello"));
    }
}

Ereignisse sind ein spezieller Typ von Multicastdelegaten, die nur innerhalb der Klasse oder Struktur aufgerufen werden können, in der sie deklariert wurden (die Herausgeberklasse). Wenn andere Klassen oder Strukturen das Ereignis abonnieren, werden ihre Ereignishandlermethoden aufgerufen, wenn die Herausgeberklasse das Ereignis auslöst. Weitere Informationen und Codebeispiele finden Sie unter Ereignisse (C#-Programmierhandbuch) und Delegaten (C#-Programmierhandbuch).

Ereignisse können als public, private, protected, internal oder protectedinternal gekennzeichnet werden. Diese Zugriffsmodifizierer definieren, wie Benutzer der Klasse auf das Ereignis zugreifen können. Weitere Informationen hierzu finden Sie unter Zugriffsmodifizierer (C#-Programmierhandbuch).

Schlüsselwörter und Ereignisse

Die folgenden Schlüsselwörter gelten für Ereignisse.

Schlüsselwort

Beschreibung

Weitere Informationen

static

Macht das Ereignis jederzeit für Aufrufer verfügbar, selbst wenn keine Instanz der Klasse vorhanden ist.

Statische Klassen und statische Klassenmember (C#-Programmierhandbuch)

virtual

Ermöglicht es abgeleiteten Klassen, das Verhalten von Ereignissen mit dem override-Schlüsselwort zu überschreiben.

Vererbung (C#-Programmierhandbuch)

sealed

Gibt an, dass es für abgeleitete Klassen nicht mehr virtuell ist.

 

abstract

Der Compiler generiert keinen add-Ereignisaccessorblock und remove-Ereignisaccessorblock, sodass abgeleitete Klassen ihre eigene Implementierung bereitstellen müssen.

 

Ein Ereignis kann mit dem static-Schlüsselwort als statisches Ereignis deklariert werden. Dadurch wird das Ereignis jederzeit für Aufrufer verfügbar, selbst wenn keine Instanz der Klasse vorhanden ist. Weitere Informationen hierzu finden Sie unter Statische Klassen und statische Klassenmember (C#-Programmierhandbuch).

Ein Ereignis kann mit dem virtual-Schlüsselwort als virtuelles Ereignis gekennzeichnet werden. Dies ermöglicht abgeleiteten Klassen, das Verhalten von Ereignissen mit dem override-Schlüsselwort zu überschreiben. Weitere Informationen hierzu finden Sie unter Vererbung (C#-Programmierhandbuch). Ein Ereignis, das ein virtuelles Ereignis überschreibt, kann auch versiegelt sein. Damit wird angegeben, dass es für abgeleitete Klassen nicht mehr virtuell ist. Schließlich kann ein Ereignis als abstrakt deklariert werden, d. h., der Compiler generiert keinen add-Ereignisaccessorblock und keinen remove-Ereignisaccessorblock. Somit müssen abgeleitete Klassen ihre eigene Implementierung bereitstellen.

C#-Programmiersprachenspezifikation

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

  • 1.6.6.4 Ereignisse

  • 7.16.3 Ereigniszuweisung

  • 10.8 Ereignisse

  • 13.2.3 Schnittstellenereignisse

Siehe auch

Aufgaben

Gewusst wie: Kombinieren von Delegaten (Multicastdelegaten) (C#-Programmierhandbuch)

Konzepte

C#-Programmierhandbuch

Referenz

C#-Schlüsselwörter

Modifizierer (C#-Referenz)

Weitere Ressourcen

C#-Referenz