Events restrict access to the delegate list, since you can only add and remove delegates using the += and -= operators. Delegates, on the other hand, do not bear this restriction, so given the shortcomings below.
public event DelegateType Events; public DelegateType Delegates;
You can do the following
instance.Delegates = null;
but the compiler will stop you from executing
instance.Events = null;
When the Events field is compiled, it is actually private , despite its declaration as public , and the compiler simply adds add / remove methods to manage the list.
source share