Geeks With Blogs
Deeksha Sharma

Events in the .NET Framework are based on the delegate model. The delegate model follows the observer design pattern, which enables a subscriber to register with, and receive notifications from, a provider. An event sender pushes a notification that an event has happened, and an event receiver receives that notification and defines a response to it. This article describes the major components of the delegate model, how to consume events in applications, and how to implement events in your code.

For information about handling events in Windows Store apps, see Events and routed events overview (Windows store apps).


An event is a message sent by an object to signal the occurrence of an action. The action could be caused by user interaction, such as a button click, or it could be raised by some other program logic, such as changing a property’s value. The object that raises the event is called the event sender. The event sender doesn't know which object or method will receive (handle) the events it raises. The event is typically a member of the event sender; for example, the Click event is a member of the Button class, and thePropertyChanged event is a member of the class that implements the INotifyPropertyChanged interface.

To define an event, you use the event (in C#) or Event (in Visual Basic) keyword in the signature of your event class, and specify the type of delegate for the event. Delegates are described in the next section.

Typically, to raise an event, you add a method that is marked as protected and virtual (in C#) or Protected and Overridable (in Visual Basic). Name this method OnEventName; for example, OnDataReceived. The method should take one parameter that specifies an event data object. You provide this method to enable derived classes to override the logic for raising the event. A derived class should always call the OnEventName method of the base class to ensure that registered delegates receive the event.

The following example shows how to declare an event named ThresholdReached. The event is associated with the EventHandler delegate and raised in a method namedOnThresholdReached.

class Counter
    public event EventHandler ThresholdReached;

    protected virtual void OnThresholdReached(EventArgs e)
        EventHandler handler = ThresholdReached;
        if (handler != null)
            handler(this, e);

    // provide remaining implementation for the class
Posted on Friday, December 12, 2014 6:33 AM | Back to top

Comments on this post: Event Description

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © Deeksha Sharma | Powered by: