什么是表达式树,你如何使用它们,为什么要使用它们?

Don*_*nny 68 .net c# linq expression-trees

我刚刚遇到过多次表达树的概念.我只想了解表达式树及其用途的含义.

如果有人能指导我简单的解释和使用样本,我会很高兴.

Roy*_*tus 66

表达式树是包含表达式的数据结构,它基本上是代码.因此,它是一个树结构,表示您可以在代码中进行的计算.然后可以通过在一组数据上"运行"表达式树来执行这些代码片段.

关于表达式树的一个好处是你可以在代码中构建它们; 也就是说,您在代码中构建可执行代码(或一系列步骤).您还可以在执行代码之前修改代码,方法是用其他表达式替换表达式.

然后,表达式是一个函数委托,例如(int x => return x * x).

另见http://blogs.msdn.com/b/charlie/archive/2008/01/31/expression-tree-basics.aspx

  • 这不是真的.正如链接文章中所指出的,表达式树主要用于表示将通过线路发送以便在其他地方执行的计算.因此,他们不包含代码; 相反,它们不是代码. (3认同)
  • 表达式树可用于您要在本地或远程执行的任何计算.您可以轻松编写将类型化表达式转换为表达式树的解析器.我也从未说过Expression Trees包含代码. (3认同)
  • 我还要注意,正在寻找这个问题答案的人很可能不知道答案,因此用户的"智慧"或知识应假设为0(关于手头的主题) (3认同)
  • 如果"带有代码片段的树结构"并不意味着它们"包含代码",那么你应该编辑你的答案以使其清楚.您应该清楚表明Expressions不包含任何IL代码,并依赖于进一步翻译成可执行的东西. (2认同)