![]() |
1
25
表达式树与 AST . 它不直接映射到代码,但非常适合从算法构造。例如,如果要分析公式:
即:
事实上,我已经做到了 确切地 这将使用一个构建对象树的解析器,对象通过“访问者”实现生成完整的表达式。在.NET 4.0中,更丰富的表达式树支持可以支持大多数场景,并根据需要进行编译。 表达式的另一个关键用途是 解构 它们在运行时,所以 在您的代码中 你可能有:
并提取
代码DOM映射到 代码 . 一切都是关于陈述等, 非常 类似于如何编写常规代码。作为工具的一部分,codedom最常用于代码生成。你 可以 使用它进行动态编译,但老实说,这很难。我不是粉丝。好的特性是一个codedom树 可以 为多种语言工作。
另一个竞争者应该是
如果
因此,总结一下:
|
![]() |
2
0
表达式树用于构建表达式。在运行时创建源代码。codedom用于编译源代码。在你建造它之前,它必须存在。表达式树更灵活,但更难使用。 如果要向应用程序添加脚本,请使用codedom。如果你想做非常高级的反射和喜欢,使用表达式树,但我不推荐它。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 6 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 6 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 6 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 6 月前 |