Delegates are references to methods. So we have used to references to object, e.g.
Employee emp = new Employee ();
Here emp is a reference to an object of the Employee class type. Hence, each reference has two properties:
1. The type of object (class) the reference can point to.
2. The actual object referenced (or pointed to) by the reference.
Delegates are similar to object references, but are used to reference methods instead of objects. The type of a delegate is type or signature of the method rather than class. Hence a delegate has three properties:
- The type or signature of the method that the delegate can point to
- The delegate reference which can we used to reference a method
- The actual method referenced by the delegate
The concept of delegates is similar to the function pointers used in C++
Example:
namespace Delegate
{
class Program
{
delegate int SampleDelegate(int a, int b);
static void Main(string[] args)
{
SampleDelegate calculation = null;
calculation = new SampleDelegate(add);
int add1 = calculation(4, 5);
Console.WriteLine("Sample of delegate in c#");
Console.WriteLine("Adding two value= " + add1);
calculation = newSampleDelegate(sub);
int sub1 = calculation(4, 5);
Console.WriteLine("Subtraction between two value= " + sub1);
calculation = newSampleDelegate(mul);
int mul1 = calculation(4, 5);
Console.WriteLine("multiplication between two value= " + mul1);
Console.Read();
}
staticint add(int f, int g)
{
return f + g;
}
staticint sub(int f, int g)
{
return f - g;
}
staticint mul(int f, int g)
{
return f * g;
}
}
}
Run the project and output:
This is the simple example to show how we use the delegate.
Anonymous User
20-Feb-2019Thanks for the information.
Sunil Singh
06-Jul-2017Keep sharing these types of articles.