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
The exact situation for delegates is, passing the method as a argument. public delegate int DelegateAdd(int a,int b); class MyClass { static int function_values(int val1,int val2) { return val1+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); Console.ReadLine(); } }
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
In asp.net , when you want to pass some data from user control to content page
we should use delegate to call the event procedure.
Passing data from user control to content page
Delegates are useful when you do want to propagate events to other objects without any relationship with them.
Delegates are mostly used for providing the callbacks.So you can pass your method and execute the code when delegate invoked.
The main use of Delegate when you need to pass the logic , When developer are not sure what logic is going to pass to complete an event or in method call. for example when in Entity Framework user call where method over an entity he need to pass logic either as lambda function. All below case stating the same 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 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. thanks
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
overriding-in-C-Sharp-and-internals-of-overriding
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