using System.Linq.Expressions;
using System.Collections;
using System.Collections.Generic;
public static int MyFunc(int a, int b)
public static void Main()
Console.WriteLine("****************** C# Equivalent Output **************************\n\n");
Console.WriteLine(MyClass.MyFunc(param1,param2));
Console.WriteLine("\n\n***************** Expression Tree Output **************************\n\n");
var c1 = Expression.Constant(param1);
var c2 = Expression.Constant(param2);
var expr = Expression.Call(typeof(MyClass).GetMethod("MyFunc"), c1, c2);
Func<int> func = Expression.Lambda<Func<int>>(expr).Compile();
Console.WriteLine(func.Invoke());