using System.Linq.Expressions;
public static void Main()
var inputParam = Expression.Parameter(typeof(string), "input");
var parsedVar = Expression.Variable(typeof(int), "parsed");
var tryParseCall = Expression.Call(typeof(int), "TryParse", null, inputParam, parsedVar);
var writeLineCall = Expression.Call(typeof(Console), "WriteLine", null, Expression.Constant("Parsed: {0}"), Expression.Convert(parsedVar, typeof(object)));
var lambda = Expression.Lambda<Action<string>>(Expression.Block(new[] { parsedVar }, tryParseCall, writeLineCall), inputParam);
var compiled = lambda.Compile();