A Delegate is a reference type that refers to a method.it use to pass methods as arguments to other method. Which is used to invoke the method at a later time. It is useful for implementing events and callbacks.
Delegate can be declare using the delegate keywords
Delegate int MyDelegates(int k,int z);
public static int add(int k,int z) { return k + z; }
Create delegate instance and pass it the method
MyDelegates del=new MyDelegates(Add); int result= del(10,5);
It can also use anonymous methos and Lambda expressions to create delegates.
For Example
mydel del = (k, z) => k + z; int result = del(110, 60);
Delegate – Passing as Argument
public delegate void Mydelegates(string Message); public delegate int mydel(int k, int z); class program { static void Main(string[] args) { Mydelegates mydelegates = Delegateclass.delmethod; invokedelegates(mydelegates); mydel del = (k, z) => k + z; int result = del(110, 60); mydel mydel = new mydel(add); Console.WriteLine("Add "+ mydel(50,100)); } public static int add(int k,int z) { return k + z; } public static void invokedelegates(Mydelegates md) { md("Hi! Welcome"); } public class Delegateclass { public static void delmethod(string msg) { Console.WriteLine("Method with parameters:" + msg); } } }