A delegate-based event-driven programming model facilitates application development
by allowing event handlers to be manipulated on an individual basis. In the delegate-based
event-driven programming model, the recipient of an event need not be aware that
is receiving the event because the event is treated as a call from a method. In
addition, event handlers can be dynamically manipulated, such that recipients of
events can be added or removed during runtime. Flexibility of event handling is
improved as a result.