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>:委托表达式