public static Func<int, string> method1 = (x) => (x*3).ToString();
public static Func<int, string> method2 = new Func<int, string>(DoSomething);
public static void Main()
var result1 = method1.Invoke(2);
Console.WriteLine(result1);
ExecuteMethod(method2, 2);
ExecuteMethods(method2, 1,2,3,4,5,6,7,8,9,10);
public static string DoSomething(int number){
return (number*5.7).ToString();
public static void ExecuteMethod(Func<int, string> func, int number)
Console.WriteLine(func.Invoke(number));
public static void ExecuteMethods(Func<int, string> func, params int[] numbers)
foreach(var n in numbers)
Console.WriteLine(func.Invoke(n));