public static void Main()
int result= PerformCalcFunc<int>(Multiply, 5, 2);
Console.WriteLine(string.Format("Hello World! Using Func.. result:{0}", result));
PerformCalcAction<int>(MultiplyAction, 5, 2);
public static T PerformCalcFunc<T>(Func<T, T, T> operation, T x, T y)
returnVal = operation(x, y);
private static Func<int, int, int> Add = (x, y) => x + y;
private static Func<int, int, int> Substract = (x, y) => x - y;
private static Func<int, int, int> Multiply = (x, y) => x * y;
public static void PerformCalcAction<T>(Action<T, T> operation, T x, T y)
private static Action<int, int> AddAction = (x, y) => Console.WriteLine(string.Format("Hello World! Using Action.. result:{0}", x + y ));
private static Action<int, int> SubstractAction = (x, y) => Console.WriteLine(string.Format("Hello World! Using Action.. result:{0}", x - y ));
private static Action<int, int> MultiplyAction = (x, y) => Console.WriteLine(string.Format("Hello World! Using Action.. result:{0}", x * y ));