表达式树
lambda表达式不仅可以赋给委托类型,还可以赋给Expression<>
类型。C#编译器根据类型给lambda表达式定义不同的行为,如果类型是Expression<>类型,编译器就从lambda表达式中创建一个表达式树存储在程序集。这样,就可以在运行期间分析表达式树,并进行优化,以便查询数据源。
CRE:这就是通过Expression<>能获取变量标识符名称的原因?
CRE:
Expression<TDel<>>
类型调用Compile()
方法可以返回TDel<>
类型的委托。
编译器把表达式树放在程序集中。表达式树可以在运行期间读取。表达式树从派生自抽象基类Expression
的类中构建。Expression
类与Expression<>
不同。继承自Expression类型的类有BinaryExpression
、ConstantExpression
、lambdaExpression
、NewExpression
等。
(END)