技术开发 频道

从LINQ的角度看待C#3.0的新功能


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);
  在运行时分解表达式树,并显示以下字符串:
n LT 5
0
相关文章