event in c# example

event in c# example
In this article [Show more]

    Understanding and Implementing Events in C#

    Events in C# are a way for a class or object to notify other classes or objects when something interesting occurs. The concept is based on the publisher/subscriber model where the publisher raises an event, and the subscribers handle the event. Events are commonly used in designing interactive systems such as user interfaces or in scenarios where components need to communicate changes to one another without being directly linked. This article explains how to define, raise, and handle events in C# through a practical example.

    Basic Concepts of Events

    An event in C# is a way for a class to provide notifications to clients of that class when some interesting thing happens to an object. The most common use of events is in graphical user interfaces; typically, the classes that represent controls in the interface have events that are notified when the user does something to the control (like clicking a button).

    Step-by-Step Example: Implementing a Simple Event

    Step 1: Define the Event Publisher Class

    First, you'll define a class that can publish or raise an event. This class will contain a delegate that specifies the signature of the event handlers that clients can attach to the event.

     

    using System;
    
    public class EventPublisher
    {
        // Step 1: Define a delegate that matches the signature of the event handlers.
        public delegate void Notify();  // Delegate for the event
    
        // Step 2: Declare the event using the delegate
        public event Notify OnChange;
    
        // Step 3: Method to raise the event
        public void RaiseEvent()
        {
            // Check if there are any Subscribers
            if (OnChange != null)
            {
                OnChange();  // Notify all subscribers
            }
        }
    }
    

    Step 2: Define the Event Subscriber Class

    Next, you will define a class that will subscribe to and handle the event.

     

    public class EventSubscriber
    {
        public void HandleEvent()
        {
            Console.WriteLine("Event Handler called");
        }
    }
    

    Step 3: Subscribing to the Event

    Now, you need to subscribe the HandleEvent method of an instance of EventSubscriber to the OnChange event of an instance of EventPublisher.

     

    public class Program
    {
        public static void Main()
        {
            // Create an instance of the publisher
            EventPublisher publisher = new EventPublisher();
            
            // Create an instance of the subscriber
            EventSubscriber subscriber = new EventSubscriber();
            
            // Subscribe the HandleEvent method to the OnChange event
            publisher.OnChange += subscriber.HandleEvent;
            
            // Trigger the event
            publisher.RaiseEvent();
        }
    }
    

    In this example:

    • EventPublisher is the class that contains the event and the method that raises the event.
    • EventSubscriber is the class that handles the event. Its method HandleEvent will be called when the event is raised.
    • In the Main method, an instance of EventPublisher is created, and an instance of EventSubscriber subscribes to the OnChange event. When publisher.RaiseEvent() is called, it triggers the event, which calls the HandleEvent method of subscriber.

    Conclusion

    Events in C# provide a robust mechanism for communication between components in an application. By defining events in a publisher class and handling them in subscriber classes, you can keep your application components loosely coupled yet able to interact efficiently. Understanding and using events is crucial for building scalable and maintainable C# applications, especially those that require interaction or need to notify components about changes or significant actions.

     

     

     


     

    Author Information
    • Author: Ehsan Babaei

    Send Comment



    Comments