zhouqijie

表达式树

lambda表达式不仅可以赋给委托类型,还可以赋给Expression<>类型。C#编译器根据类型给lambda表达式定义不同的行为,如果类型是Expression<>类型,编译器就从lambda表达式中创建一个表达式树存储在程序集。这样,就可以在运行期间分析表达式树,并进行优化,以便查询数据源。

CRE:这就是通过Expression<>能获取变量标识符名称的原因?

CRE:Expression<TDel<>>类型调用Compile()方法可以返回TDel<>类型的委托。

编译器把表达式树放在程序集中。表达式树可以在运行期间读取。表达式树从派生自抽象基类Expression的类中构建。Expression类与Expression<>不同。继承自Expression类型的类有BinaryExpressionConstantExpressionlambdaExpressionNewExpression等。

(END)