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

 

posted @ 2018-11-28 11:41  几清  阅读(362)  评论(0编辑  收藏  举报