opzioni limitate per l'accesso a eventi nelle classi derivate?
-
01-10-2019 - |
Domanda
Im refactoring una classe, e lo spostamento sezioni in una classe di base.
Ho un paio di eventi simili a
public event EventHandler GridBinding;
che sono ora nella classe base, ma mi sto trovando non posso ora verificare se l'evento è nullo nella mia classe derivata. In questo modo mi dà l'errore:
L'evento 'xyz.GridBinding' può solo apparire sul lato sinistro + = o -. = (Tranne quando viene utilizzato all'interno del tipo 'xyz._MyBaseClass')
È questo corretto, mi manca nulla, o c'è un modo per aggirare questo o sta scrivendo una funzione di accesso l'unico modo per fare questo? Sto usando C # /. Net 4.0
Soluzione
No, non è possibile ottenere intorno a questo.
Il modo corretto è dichiarare metodi protetti nella classe che contiene gli eventi, in modo da poterli licenziare da qualsiasi classe derivata, se necessario.