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


Answers:


67

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

表达式树的一个很棒的事情是您可以在代码中构建它们。也就是说,您在代码中构建了可执行代码(或一系列步骤)。您还可以在执行代码之前通过用其他表达式替换表达式来修改代码。

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

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


3
这不是真的。正如链接文章中指出的那样,表达式树主要用于表示将通过网络发送以在其他地方执行的计算。因此,它们不包含代码。而是它们代替了代码。
david.pfx

3
表达式树可用于您要在本地或远程执行的任何计算。您可以轻松地编写一个将类型化的表达式转换为表达式树的解析器。我也从未说过表达式树包含代码。
罗伊·迪克特斯

2
如果“其中包含代码的树结构”的意图不是要表示它们“包含代码”,则应编辑答案以使其清晰。您应该明确表示,表达式不包含任何IL代码,而是依赖于进一步翻译为可执行文件。
david.pfx

1
@RoyDictus如果没有在两行之间阅读,这是不明显的。假设智力通常是一个坏主意。请明确。
Gusdor

3
我还要指出,正在寻找该问题答案的人很可能对该答案一无所知,因此对于“智能”或用户知识应该假定为0(就手头而言)
Steve Byrne
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.