EXpression 表达式目录树

表达式树   前面n-1的是一个表达式  最后一个是一个表达式  一直拆开拆到最后

继承ExpressionVisitor的类  可以重写获取到表达式树的方法进行扩张和改写

委托是编译成一个方法 

表达式树不是的  是一种数据结构   但是通过exp.Compile()方法编译后就是一个委托 能进行Compile()的只有LambdaExpression

表达式目录树方法体只能有一行   

 /////////////////////////////////////自己拼装表达式目录树

定义一个常数345  定义一个常数456  然后把两个数相加     转成LambdaExpression   执行Compile()变成委托  ()()就是相当于委托.invoke()   委托()和委托.invoke()相同  以为委托就是一个方法

ConstantExpression:常量表达式

ParameterExpression:参数表达式

UnaryExpression:一元运算符表达式

BinaryExpression:二元运算符表达式

TypeBinaryExpression:is运算符表达式

ConditionalExpression:条件表达式

MemberExpression:访问字段或属性表达式

MethodCallExpression:调用成员函数表达式

Expression<TDelegate>:委托表达式

原文地址:https://www.cnblogs.com/jiangchengbiao/p/10031203.html