using System; using System.Linq; using System.Collections.Generic; using System.Collections.Concurrent; using System.Reflection; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; Expression> tree = value => value * 2 + 1; Func direct = value => value * 2 + 1; var body = (BinaryExpression)tree.Body; Console.WriteLine($"node:{body.NodeType}"); Console.WriteLine($"left:{body.Left.NodeType}"); Console.WriteLine($"interpreted:{tree.Compile(preferInterpretation: true)(3)}"); Console.WriteLine($"delegate:{direct(3)}");