Ce vi se pare gresit in codul de mai jos: public class Base { public virtual event EventHandler EventOne; } public class Derived : Base { public override event EventHandler EventOne; public void DoAction() { ... EventOne(this, args); } } In clasa de baza avem un eveniment la care se poate face override in orice clasa derivata. Desi la prima vedere totul pare sa fie in ordine daca ne uitam mai atent, putem sa observam o problema care poate sa apara din cauza la override. EventOne o sa existe in doua locatii diferite, atat in clasa de baza cat si in clasa derivata. Din aceasta cauza o sa fie momente cand EventOne din clasa de baza nu o sa fie niciodata instantiat. Din aceasta cauza, in cazul in care evenimentul este apelat din clasa de baza ne putem trezi cu un comportament ciudat, precum NullReferenceException sau sa se execute cod la aruncarea unui eveniment pe care noi nu ne-am astepta sa se execute. Ce putem sa facem ca sa rezolvam aceasta problema...
DREAMER, CRAFTER, TECHNOLOGY ENTHUSIAST, SPEAKER, TRAINER, AZURE MVP, SOLVING HARD BUSINESS PROBLEMS WITH CUTTING-EDGE TECHNOLOGY