bool isSmall = f(2); // isSmall is now true
变量 e 是对表达式树的引用,不可直接执行:
bool isSmall = e(2); // compile error, expressions == data
与委托(有效的不透明代码)不同,我们可以像与程序中的任何其他数据结构交互那样与表达式树进行交互。例如,以下程序:
Expression filter = n => n < 5; BinaryExpression body = (BinaryExpression)filter.Body; ParameterExpression left = (ParameterExpression)body.Left; ConstantExpression right = (ConstantExpression)body.Right; Console.WriteLine("{0} {1} {2}", left.Name, body.NodeType, right.Value);
在运行时分解表达式树,并显示以下字符串:







