Come funziona un evento virtuale? Come lo ignoreresti? Come funzionerebbe? E in quali casi lo faresti?C#: quali sono gli eventi virtuali e come possono essere utilizzati?
Sarebbe, ad esempio, un sostituto ok per i metodi OnEvent protetti? In modo che le classi ereditanti possano semplicemente scavalcare l'evento e sollevarlo direttamente? O sarebbe sbagliato o semplicemente non funziona?
MSDN dice a questo proposito:
Un evento può essere contrassegnato come un evento virtuale utilizzando la parola chiave virtuale. Ciò consente alle classi derivate di sovrascrivere il comportamento dell'evento utilizzando la parola chiave override. Un evento che sovrascrive un evento virtuale può anche essere sigillato, il che specifica che per le classi derivate non è più virtuale.
Ma questo non mi ha reso molto più saggio. La roba sigillata è ovvia però.
Nota: ho visto la questione How virtual events work in C# ?, ma non era veramente come funzionano eventi virtuali. Piuttosto è stato il modo in cui quella persona ha ottenuto il risultato ottenuto dall'usarli. Ho cercato di capire quali erano gli eventi virtuali dal suo esempio e le risposte, ma non poteva davvero dare un senso a questo.
Articolo "Eventi virtuali in C#: qualcosa è andato storto" - http://www.viva64.com/en/b/0453/ –