event (C#-Referenz)

 

System_CAPS_ICON_note.jpg Hinweis

Die neueste Dokumentation über C# finden Sie im Leitfaden für C# auf docs.microsoft.com.

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

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.


    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.
            if (SampleEvent != null)
                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 und Delegaten.

Ereignisse können als public, private, protected, internal oder protected``internal gekennzeichnet werden. Diese Zugriffsmodifizierer definieren, wie Benutzer der Klasse auf das Ereignis zugreifen können. Weitere Informationen finden Sie unter Zugriffsmodifizierer.

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

SchlüsselwortBeschreibungWeitere Informationen
staticMacht das Ereignis jederzeit für Aufrufer verfügbar, selbst wenn keine Instanz der Klasse vorhanden ist.Statische Klassen und statische Klassenmember
virtualErmöglicht es abgeleiteten Klassen, das Verhalten von Ereignissen mit dem override-Schlüsselwort zu überschreiben.Vererbung
sealedGibt an, dass es für abgeleitete Klassen nicht mehr virtuell ist.
abstractDer 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 finden Sie unter Statische Klassen und statische Klassenmember.

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 finden Sie unter Vererbung. 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.

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

C#-Referenz
C#-Programmierhandbuch
C#-Schlüsselwörter
Hinzufügen
Entfernen
Modifizierer
Gewusst wie: Kombinieren von Delegaten (Multicastdelegaten)

Anzeigen: