Heim >Backend-Entwicklung >C++ >Wie löst man geerbte Ereignisse in C# richtig aus?
So lösen Sie geerbte Ereignisse in C# aus
In C# können Ereignisse in Basisklassen deklariert werden und auf abgeleitete Klassen zugegriffen werden. Das Auslösen von Ereignissen in geerbten Klassen erfordert jedoch eine spezielle Behandlung.
Problem:
Beim Versuch, ein von einer Basisklasse geerbtes Ereignis auszulösen, kann es zu einer entsprechenden Fehlermeldung kommen Das Ereignis kann nur auf der linken Seite von = oder -= erscheinen Operatoren.
Lösung:
Um geerbte Ereignisse auszulösen, müssen Sie geschützte Methoden in der Basisklasse erstellen, die zum Aufrufen der Ereignisse verwendet werden können. Diese Methoden sollten der Namenskonvention „OnEventName“ folgen.
Betrachten Sie beispielsweise die folgende Basisklasse:
public class BaseClass { public event EventHandler Loading; public event EventHandler Finished; }
Protected Event Raising Methods:
Erstellen Sie in der Basisklasse geschützte Methoden wie die folgenden:
protected virtual void OnLoading(EventArgs e) { EventHandler handler = Loading; if (handler != null) { handler(this, e); } } protected virtual void OnFinished(EventArgs e) { EventHandler handler = Finished; if (handler != null) { handler(this, e); } }
Ereignisse auslösen in der abgeleiteten Klasse:
Rufen Sie in der abgeleiteten Klasse die geschützten Methoden auf, um die Ereignisse auszulösen:
public class DerivedClass : BaseClass { public void DoSomething() { ... OnLoading(EventArgs.Empty); ... OnFinished(EventArgs.Empty); } }
Hinweis:
Das obige ist der detaillierte Inhalt vonWie löst man geerbte Ereignisse in C# richtig aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!