Delegates can be used in following cases:-
1) When you want to pass the methods as a parameter
2) most important usage of delegate is event handling.
Event Handlers are nothing but methods being pointed by delegates and called.
3) It can also be used in Callbacks
4) Asynchronous processing
In asp.net , when you want to pass some data from user control to content page
The exact situation for delegates is, passing the method as a argument.
public delegate int DelegateAdd(int a,int b);
static int function_values(int val1,int val2)
static void Main(string args)
//Creating the Delegate Instance
Delegate_Add delObj = new Delegate_Add(DelegateAdd);
Console.Write("Please Enter Values");
int v1 = Int32.Parse(Console.ReadLine());
int v2 = Int32.Parse(Console.ReadLine());
//use a delegate for processing
int Result = delObj(v1,v2);
Console.WriteLine ("Result :"+res);
There are three main uses of Delegates.
1) Delegates are used in Event handling. As Event handlers are also methods which are pointed by delegates.
2) Delegates are used when you have to pass some method as parameter.
3) Delegates are used in Asynchronous processing
we should use delegate to call the event procedure.
Passing data from user control to content page
In my opinion when i need to pass methods as a parameter.
Deligate are used for creating events.1)I have used deligate while i was creating an user control in my application and to define the events of that control i have used deligate.
2)secondly the use of deligate is to call the event procedure.
Delegates whenever you call its always call same memory location, they didn't create new memory when you call many times.
If you need further explanation please let me know so that i will give you complete details .
Assume you need to create a framework which needs to call an unknown method present in an unknown class . For details better to read
Delegates are useful when you do want to propagate events to other objects without any relationship with them.
When you do not know what is going to happen until run time. Since delegates are of user type, and you do not know what is going to happen at run time the best practice is to return void values. This is what makes them ideal for event handling, if you need more then 1 event handled in the same action, they can be added to the delegate and fired in what ever selectable order.
Also delegates can make calls to methods from other classes you do not wish to interface all the methods of. So you can select what methods are accessible.
if i am not wrong then if you have a multiple process to do in parallel then use delegate
C# Corner. All contents are copyright of their authors.