j'ai une classe de base qui contient les événements suivants:C#: Raising un événement hérité
public event EventHandler Loading;
public event EventHandler Finished;
Dans une classe qui hérite de cette classe de base que je tente de soulever l'événement:
this.Loading(this, new EventHandler()); // All we care about is which object is loading.
Je reçois l'erreur suivante:
l'événement « BaseClass.Loading » ne peut apparaître sur le côté gauche de + = ou - = (BaseClass')
Je suppose que je ne peux pas accéder à ces événements les mêmes que d'autres membres hérités?
Ces méthodes doivent être protégées virtuel moins qu'il y ait une raison de faire autrement. –
Pourquoi devrait-il être virtuel? Je le déclarerais virtuel si je voulais que les héritiers changent la façon dont l'événement devrait être soulevé, mais la plupart du temps, je ne vois aucune raison de le faire ... –
Selon les directives Microsoft dit qu'il devrait être virtuel afin que les héritiers puissent contrôler le event .. En outre, la méthode On protected devrait prendre des arguments d'événement, pas les créer eux-mêmes. Cette réponse est fausse par rapport à la bonne par Adam Robinson. – meandmycode