Click here to Skip to main content
Click here to Skip to main content

Simplest event delegate ever

, 10 Oct 2006 CPOL
Rate this:
Please Sign up or sign in to vote.
The simplest sample of how an event delegate can be used in C#.

Introduction

Check out this simple event delegate code. First, you have a source which generates an event:

using System;
using System.Collections.Generic;
using System.Text;

namespace eventDelegate
{
    class Source
    {
        public event EventHandler SomeEvent; 
        // this event is of type EventHandler, 
        // meaning it can notify any function whose signature is like the 
        // one of EventHandler EventHandler is the delegate

        public void RaiseEvent()
        {
            if (null != SomeEvent) // to avoid exceptions when event 
            {                      // delegate wiring is not done
                SomeEvent(this, null);
            }
        }
    }
}

Next, you have a receiver which is supposed to get a notification of the event:

using System;
using System.Collections.Generic;
using System.Text;

namespace eventDelegate
{
    class Receiver
    {
        public void NotifyMe(object source, EventArgs e)
        {
            Console.WriteLine("I am notified by "+source.GetType());
        }
    }
}

Then you have the main program which does the wiring:

using System;
using System.Collections.Generic;
using System.Text;

namespace eventDelegate
{
    class Program
    {
        static void Main(string[] args)
        {
            Source theSource = new Source();
            Receiver theReceiver = new Receiver();

            theSource.SomeEvent += new EventHandler(theReceiver.NotifyMe);

            theSource.RaiseEvent();
        }
    }
}

As simple as that. It can now be extended to include custom event data and therefore a new class inheriting from EventArgs and therefore ending up with a new delegate which can handle this new EventArgs.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

nitstheone

India India
No Biography provided

Comments and Discussions

 
GeneralGreat! PinmemberHatrick9-Jan-07 3:34 
GeneralYou may want to reference my article PinmemberTodd Wilder16-Oct-06 8:21 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.141022.1 | Last Updated 10 Oct 2006
Article Copyright 2006 by nitstheone
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid