Events in .NET are great. We have the event keyword that gives us a fast way to start to use them, but somehow the whole set can bring on things like: memory leaks, callback hell and a lot of extra code. In general it is because they have a lack of flexibility and they are hard to maintain.
Full article