MyD*_*ons 2 .net expression-trees
我不知道为什么我要阅读表达式树,但我是。因此,我不了解该对象,也不了解它的使用地点或方式。
在这里阅读其他问题,例如什么是表达式树以及如何使用它们以及为什么要使用它们?(以及他们引用的链接),我现在对表达式树有了更好的理解,但是,我仍然不知道为什么使用它。
关于原因,我见过的唯一示例是 Linq to SQL 之类的东西 - 但是当您对其进行更多调查时,它似乎实际上更多地是关于它与IQueryable<T>界面的使用。
表达式树是否仅与IQueryable 接口结合使用(使用)?
这有点同义反复,但答案是“无论何时你需要理解一个表达式”。
我从初级开发人员那里看到的一个常见问题是“Func<T>和”有什么区别Expression<Func<T>>?对于大多数情况,后者需要您调用Compile()表达式来获取它所代表的函数,但除此之外它们似乎做同样的工作。
表达式树让编译器将通常是指令的内容嵌入为可探索的表达式树。如果您正在编写的内容不仅需要了解函数的结果,还需要了解调用者如何构造他们的函数,表达式树可以为您捕捉到这一点。
在差异变得相关之前,您必须知道表达式是如何组成的。
我只见过以两种方式使用的表达式:
IQueryable并且是一个大交易™。常见的任务往往是某种翻译成另一种语言。对于 LINQ 提供程序,它是将查询直接翻译成另一种查询语言。在 Razor 的情况下,它是将属性转换为 HTML 字段。