What is Delegate in C#?
C# delegates are pointers to functions or methods. A delegate is a reference type variable that holds the reference to a method. The reference can be changed at the runtime. Delegates are especially used for implementing events and the call-back methods. All the delegates are implicitly derived from the System.Delegate class.
Simple Delegate Example:
public class WebTools
{
//Declare Delegate
public delegate int PointerToAddFunction(int i, int y);
private int Add(int i, int y)
{
return i + y;
}
}
protected void btnPreview_Click(object sender, EventArgs e)
{
// Create Delegate Reference
PointeToAddFunction myptr = null;
// Point the reference to the add method
myptr = this.Add;
// Invoke the method through delegate object
Label_Result.Text = myptr.Invoke(20, 10).ToString();
}