Events and Delegates in C#
An event is a delegate-type class member that is used by the object or class to provide a notification to other objects that an event has occurred. The client object can act on an event by adding an event handler to the event. It has the following syntax:
modifier event type event-name;
Where the modifier may be new, a valid combination of the four access modifiers, and a valid combination of static, virtual, override, abstract and sealed. The type of an event declaration must be a delegate type and it must be as accessible as the event itself. The event name is any valid C# variable name.
public event EventHandler Click; public event RateChange Rate;
Where EventHandler and RateChange are delegates and Click and Rate are events.
Delegate means ‘A person acting for another person. In C#, it means that a method acts for another method. A delegate is a class-type object that is used to involve a method that has been encapsulated into it at the time of its creation. In C#, Delegates are used for two purposes:
- Event Handling
There are four steps to creating a delegate:
1. Delegate declaration
2. Delegate methods definition
3. Delegate instantiation
4. Delegate invocation