tengo una clase base que contiene los siguientes eventos:C#: provoca un evento heredado
public event EventHandler Loading;
public event EventHandler Finished;
en una clase que hereda de esta clase base trato de provocar el evento:
this.Loading(this, new EventHandler()); // All we care about is which object is loading.
recibo el siguiente error:
el evento 'BaseClass.Loading' sólo puede aparecer en el lado izquierdo de + = o - = (BaseClass')
Supongo que no puedo acceder a estos eventos de la misma manera que a otros miembros heredados.
Estos métodos deben ser protegidos virtuales a menos que haya alguna razón para no hacerlo. –
¿Por qué debería ser virtual? Lo declararía virtual si quisiera que los herederos cambien la forma en que se debe plantear el evento, pero la mayoría de las veces, no veo ninguna razón para hacerlo ... –
Según las directrices, Microsoft dice que debe ser virtual para que los herederos puedan controlar el evento ... además, el método protegido On debería tomar eventos args, no crearlos por sí mismo. Esta respuesta es incorrecta en comparación con la correcta por Adam Robinson. – meandmycode