• 软件测试技术
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘

字号: | 推荐给好友 上一篇 | 下一篇

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

发布: 2008-5-07 14:34 | 作者: 网络转载 | 来源: 本站原创 | 查看: 47次 | 进入软件测试论坛讨论

软件领测软件测试网 软件测试技术门户 b1j'G^\D

]mi T'L t 软件测试技术门户#tmmKv:a

}&v}$b2sN[软件测试技术门户1\0U B]*K
 软件测试技术门户 Y(sXT.`

bool isSmall = f(2); // isSmall is now true
软件测试技术门户E2L*J'PTMp

  变量 e 是对表达式树的引用,不可直接执行:
R+Dz Cs:j)_w

/X,m(_j nz/|B)v
bool isSmall = e(2); // compile error, expressions == data

'E"l? y)mm  与委托(有效的不透明代码)不同,我们可以像与程序中的任何其他数据结构交互那样与表达式树进行交互。例如,以下程序:
{4R/T8J;JR4K#fE,DvA]

-U$M.BW*I/~;e7}
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);
软件测试技术门户G V:{ X s

  在运行时分解表达式树,并显示以下字符串:软件测试技术门户7H4} ?.o Pf
软件测试技术门户t~X{