Events Background While theoretically delegates could be used by consumers as an even mechanism, it has some serious drawbacks. If we made our delegate public and allowed subscribers to add methods to our delegates invocation list, they would be able to receive notifications. However they would also be able to do something like the following: MessageLogger = null; In one misused line of code, our delegate has been wiped out along with it's invocation list and any link to subscribers has been lost. As a result, Events act as an abstraction on top of delegates to manage the invocation list with fairly limited Add and Remove operations. Subscribers go through the public event to add methods which in turn acts on the underlying delegate invocation list. What is an Event? Events allows a class to send notifications to other classes or objects that subscribe to the event. When an event is raised, any objects that have subscribed to the e...