articles

Home / DeveloperSection / Articles / Delegate and Event in C#

Delegate and Event in C#

Kenny Tangnde 6450 29-Oct-2011

Delegate allows the programmer to encapsulate a reference to a method inside a delegate object. The delegate object can then be passed to code which can call the referenced method, without having to know at compile time which method will be invoked. Delegate is type-safe object which can point to method or multiple methods (Multicasting) of application. To define delegate we use keyword ‘Delegate’.

Let’s see an example on ‘Delegate and Event in C#’.
Example:
namespace delegateAndEvent
{
    public delegate void TimeEventHandler(string s); //declare a delegate
    public class Mytime
    {
        public event TimeEventHandler Timer; //declare a event
        public void OnTimer(string s)
        {
            if (null!=Timer)
            {
                Timer(s);  //raise the event
            }
        }
    }
    public class ProcessTime
    {
        public void GenerateTime(string s)   //event handle
        {
            Console.WriteLine("Hello {0}!The time is {1} now",s,DateTime.Now);
        }
    }
    classProgram
    {
        staticvoid Main(string[] args)
        {
            ProcessTime p = newProcessTime();
            Mytime t = newMytime();
            t.Timer += newTimeEventHandler(p.GenerateTime);//To link events and event handling
            t.OnTimer("Mindstick");   //use event
        }
    }
}
 

 

Note: While defining delegate we need to keep in mind that return type, arguments should be same as the return type and arguments of methods to which it is going to point to.


Updated 29-Nov-2017

Leave Comment

Comments

Liked By