Erhöhen von Ereignissen, die von einer Basisklasse in C#
In C#geerbt wurden, ist üblich, Ereignisse aus einer Basisklasse zu erben, um die Ereignisbearbeitung in abgeleiteten Klassen zu ermöglichen. Das Erhöhen solcher ererbten Ereignisse erfordert jedoch einen spezifischen Ansatz, um Compiler -Fehler zu vermeiden.
Betrachten { öffentliche Event EventHandler Loading; öffentliche Veranstaltung EventHandler beendet; }
public class BaseClass { public event EventHandler Loading; public event EventHandler Finished; }
this.loading (this, New EventHandler ());
this.Loading(this, new EventHandler());
Die Ereignis 'Baseclass.Alding. (BaseClass ')
The event 'BaseClass.Loading' can only appear on the left hand side of = or -= (BaseClass')
public class BaseClass { public event EventHandler Loading; public event EventHandler Finished; 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); } } }
public class DerivedClass : BaseClass { public void DoSomething() { // Raise Loading event OnLoading(EventArgs.Empty); // Raise Finished event OnFinished(EventArgs.Empty); } }
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3