How are events implemented
I'm asking specifically about VB.NET, but I imagine the general principles are the same in other languages. I thought an event was a first-class concept in .NET, but it seems from reflection that its just a specific method which is called when the event is raised. How do AddHandler and RemoveHandler modify the method dynamically (AFAIK, events pre-date DynamicMethod s? How does RaiseEvent call the method? Why are AddHandler , RemoveHandler , and RaiseEvent implemented as statements instead of methods ? No, an event is just a combination of two or three methods (the "raise" part is optional) in