954,514 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Differences between Delegates and Events

Hi All,
I would like to know the differences between Delegates and Events in C#.Net.
Both are same or both are diffenent. Which one is preferred?

Thanks and with regards,
Madhusudhan.H.K.

cumadhu
Newbie Poster
19 posts since Sep 2005
Reputation Points: 10
Solved Threads: 0
 

They aren't the same. An event is an event. A "delegate" assigns a particular event handler to an object instance. Thus, when an object event happens, the proper procedure/method is called.

An example might help. I frequently code things so that a single method is called for all instances of a class. No matter which button is clicked, call my generic "button_click" method. That method will use the event arguments to determine which button was actually clicked.

In order to assign all button click events to a single method, I have to code the delegates.

tgreer
Made Her Cry
Team Colleague
2,118 posts since Dec 2004
Reputation Points: 227
Solved Threads: 37
 

* Event is Arraylist of delegates .
* Delegate ( as its English meaning ) : Secretary or someone who connect two persons throuh him .
* Delegate can fire only one method
But Event fire more than one delegate , each call one method

* Example : in Windows App. or ASP.NET App.
Button : is a class that has internally an event called ( eg. click ) and there is
a method you want to do if this button clicked so make an instance of the delegate
which button.click deal with ( System.EventHandler ) and make this delegate
execute the method eg. Button1_Click

Code :
in initializer of The Form Class :
Button1.Click += new System.EventHandler(this.button1_Click) ;
And make amethod :
private void button1_Click(object sender, System.EventArgs e)
{
// write your own code
}

mostafa gaber
Newbie Poster
5 posts since Sep 2005
Reputation Points: 10
Solved Threads: 0
 

Thanks a for kind information.
I know the exact difference.

Once Again a lot to all.

cumadhu
Newbie Poster
19 posts since Sep 2005
Reputation Points: 10
Solved Threads: 0
 

Event is a C# Modifier.
Delegate is a C# type.

delegate is a type that references a method.

Event is a Modifier used to declare a special kind of multicast delegate that can only be invoked from within the class or struct where it is declared (the publisher class).

Events enable a class or object to notify other classes or objects when something of interest occurs. The class that sends (or raises) the event is called the publisher and the classes that receive (or handle) the event are called subscribers.

Itzikg
Newbie Poster
1 post since Jul 2010
Reputation Points: 10
Solved Threads: 0
 

Whilst that was definitely a very well worded response (kudos).
This thread has been dead for almost 5 years, i'm not sure the OP is still waiting ;)

Ryshad
Nearly a Posting Virtuoso
1,307 posts since Aug 2009
Reputation Points: 512
Solved Threads: 246
 

All these theoritical differenes are OK. I want to know what is the difference in use. Why cannot we use multicast delegate to invoke more then one method rather then event.

r4rakesh
Newbie Poster
1 post since Nov 2010
Reputation Points: 10
Solved Threads: 0
 

you can use a multicast delegate instead of an event. but the main reason for using an event is that it prevents the invoking ability from its subscribers. basically events promote encapsulation over multicast delegates.

elninoisback
Newbie Poster
1 post since Jan 2012
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You