什么是expression树,你如何使用它们,为什么要使用它们?

我刚刚遇到了多次听到的expression树的概念。 我只是想了解一个expression树和它的目的是什么意思。

如果有人能指导我简单的解释和使用的样本,我会喜欢它。

expression式树是包含expression式的数据结构,基本上是代码。 所以它是一个树形结构,代表你可能在代码中做的计算。 然后可以通过将expression式树“运行”在一组数据上来执行这些代码段。

expression树的一个好处就是你可以用代码来构build它们。 也就是说,您将在代码中构build可执行代码(或一系列步骤)。 您也可以在执行代码之前通过用其他expression式replaceexpression式来修改代码。

一个expression式是一个函数委托,例如(int x => return x * x)

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