On the other hand, the common case for a component is to have at least one handled event. To maximize efficiency, an event system must avoid size and speed penalties for these unhandled events. Unfortunately, interface-based event systems have significant size and speed overhead for these unhandled cases. To handle one event, an event recipient must implement an entire event interface. Similarly, an event source must raise all of the events in an event interface, whether or not there are interesting event handlers on the other side.
Unhandled events have zero cost and handled events have a small cost.
Delegates make multicast support a breeze. Because delegates intrinsically support multicast, creating and managing multicast events is nearly trivial. Delegates make event wiring easy. Delegates enable event wiring and forwarding scenarios that are difficult to support in interface-based systems. All rights reserved.