using System.Linq.Expressions;
public static void Main()
Expression<Func<int,bool>> compare = num => num < 5;
Console.WriteLine(compare.Compile()(2));
var prm = Expression.Parameter(typeof(string), "str");
var toUpper = typeof(string).GetMethod("ToUpper", Type.EmptyTypes);
var body = Expression.Call(prm, toUpper);
var lambda = Expression.Lambda(body, prm);
Console.WriteLine(lambda.Compile().DynamicInvoke("camilo"));