我完全理解表达式树的概念,但我很难找到它们有用的情况。是否有可以应用表达式树的特定实例?或者它只是作为代码的传输机制吗?我觉得我在这里错过了一些东西。谢谢!什么是表达式树有用的一些情况?
11
A
回答
6
或者它只是作为传输机制代码有用吗?
对于代码,它作为执行机制很有用。使用interpreter pattern,可以直接解释表达式树。这很有用,因为它实现起来非常简单快捷。这种解释器无处不在,甚至在似乎没有“解释”任何东西的情况下也是如此,例如用于打印嵌套结构。
6
一些单元测试模拟框架利用表达式树来建立强类型的期望/验证。即:
myMock.Verify(m => m.SomeMethod(someObject)); // tells moq to verify that the method
// SomeMethod was called with
// someObject as the argument
这里,表达式从来没有实际执行,但表达式本身保存有趣的信息。无表达式树的替代办法是
myMock.Verify("SomeMethod", someObject) // we've lost the strong typing
4
当您需要访问函数逻辑以便以某种方式更改或重新应用它时,表达式树很有用。
LINQ到SQL是一个很好的例子:
//a linq to sql statement
var recs (
from rec in LinqDataContext.Table
where rec.IntField > 5
select rec);
如果我们没有表达式树本声明将不得不返回所有的记录,然后应用C#,其中的逻辑每个。
随着表达式树该where rec.IntField > 5
可以被解析成SQL:
--SQL statment executed
select *
from [table]
where [table].[IntField] > 5
相关问题
- 1. 这种情况的正则表达式是什么?
- 2. 是什么,这些正则表达式
- 3. 何时以及在何种情况下使用表达式树
- 4. 表达式树的ReadLine的最佳方式是什么?
- 5. 什么是spEL(Spring表达式语言)的一些有效用途?
- 6. 在我的情况下,URL重写的正则表达式是什么?
- 7. 正则表达式 - 在某些情况下不起作用
- 8. 在哪些情况下使用正则表达式更好?
- 9. Decorator模式很好地解决问题的一些情况是什么?
- 10. 什么是.net 4.0表达式树的一个很好的用例?
- 11. 正则表达式用或情况
- 12. 使用表达式树的另一种表达树
- 13. 为什么bss在这种情况下有一些价值?
- 14. 什么是数据结构中的表达式树?
- 15. LINQ:什么是表达式树的语法交叉连接
- 16. 表达式树的意义究竟是什么?
- 17. 设置对象属性的Linq表达式树是什么?
- 18. 为什么一些引用``x.y``的表达式改变``id(x.y)``?
- 19. 什么是lambda表达式?
- 20. 什么是System.Threading.CompressedStack的使用情况
- 21. 组的情况下,表达式匹配
- 22. Lambda表达式中的情况
- 23. 这些Javascript表达式(+!)做了什么?
- 24. 什么是'xmlhttp.setRequestHeader();'并在哪些情况下使用?
- 25. 有什么是S表达式什么是XPATH是用于XML的?
- 26. 正则表达式替换零在某些情况下
- 27. Reporting Services表达式在某些情况下会出错
- 28. Java正则表达式 - 这些部分各有什么作用?
- 29. 有条件表达式而不是循环表达式的原因是什么?
- 30. 为什么这不是一个有效的正则表达式?