|
什么是表达式树?
表达式树又称为表达式目录树,以数据形式表示语言级代码。所有的数据都存储在树结构中,每个结点表示一个表达式(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<string, string>>(pe, new ParameterExpression
[] { pe }));
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。