表达式树和泛型委托

什么是表达式树?

  表达式树又称为表达式目录树,以数据形式表示语言级代码。所有的数据都存储在树结构中,每个结点表示一个表达式(Expression)。要想手动生成表达式树我们需要引用System.Linq.Expressions 命名空间,最重要的一个类是Expression,它是所有表达式的基类。例如:

  1:参数表达式:ParameterExpression,就是一个方法中的参数,例如 search(string key),key可以看成是一个参数表达式。

  2:二元表达式:BinaryExpression,例如a+b等。

  3:方法调用表达式:MethodCallExpression,例如:自定义LINQ提供程序中实现orderby 的操作:

MethodCallExpression orderByCallExpression = Expression.Call(
                
typeof(Queryable),
                
"OrderBy",
                
new Type[] { queryableData.ElementType, queryableData.ElementType
 },
                whereCallExpression,
                Expression.Lambda
<Func<stringstring>>(pe, new ParameterExpression
[] { pe }));

NET技术表达式树和泛型委托,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。