动态构建表达式树
1、动态构建表达式树
(1)、ParameterExpression(参数表达式)、BinaryExpression(二元运算符表达式)、MethodCallExpression(调用方法的表达式)、ConstantExpression(常量表达式)、等类几乎都没有提供构造方法,而且所有属性也几乎都是只读的,因此我们一般不会直接创建这些类的实例,而是调用Expression类的Parameter,MakeBinary,Call,Constant等静态方法来生成,这些静态方法我们一般称作创建表达式树的工厂方法,而属性则通过方法参数类设置。
Add:加法
AndAlso:短路与运算;
ArrayAccess:数组元素访问;
Call:方法访问;
Condition:三元条件运算符;
Constant:常量表达式;
Convert:类型转换;
GreaterThan:大于运算符;
GreaterThanOrEqual:大于或等于运算符;
MakeBinary:创建二元运算;
NotEqual:不等于运算;
OrElse:短路或运算;
Parameter:表达式的参数;
2、使用ExpressionTreeToString动态构建表达式树






4、不用生成IL代码,实现Select的动态化