- Custom delegate initialized using Method Group Conversion
- Custom delegate initialized using Method Group Conversion with short hand syntax
- Custom delegate initialized using Anonymous Method
- Built-in delegate e.g. Func, Action initialized using Lambda Expression
Example is given for all these 4 ways in following code:
// declare delegate
public delegate int CalculateDel(int number1, int number2);
static class Calculation
{
public static int Sum(int number1, int number2)
{
return number1 + number2;
}
public static int Product(int number1, int number2)
{
return number1 * number2;
}
}Step2. Use the client Program class to Initialize and invoke delegates
class Program
{
static void Main(string[] args)
{
// 1st Approach: Custom delegate, Method Group Conversion:-
CalculateDel sum1 = new CalculateDel(Calculation.Sum);
// 2nd Approach: Custom delegate, Method Group Conversion:- (short hand syntax)
CalculateDel sum2 = Calculation.Sum;
// 3rd Approach: Anonymous Method:-
CalculateDel sum3 = delegate (int number1, int number2)
{
return number1 + number2;
};
//4th Approach: Built-in delegate, Lambda Expression
Func<int, int, int> sum4 = (x, y) => (x + y);
// delegate invocation
int result1 = Calculation.Product(sum1(2, 5), 10);
int result2 = Calculation.Product(sum2(2, 5), 10);
int result3 = Calculation.Product(sum3(2, 5), 10);
int result4 = Calculation.Product(sum4(2, 5), 10);
Console.WriteLine("Approach 1 Result is " + result1);
Console.WriteLine("Approach 2 Result is " + result2);
Console.WriteLine("Approach 3 Result is " + result3);
Console.WriteLine("Approach 4 Result is " + result4);
Console.ReadLine();
}
}
Related Posts
No comments:
Post a Comment