若是你已经用过LINQ, 你应该知道函数方式,以及包含的丰富的类库, 若是你仍不了解, 那根据下面的连接去熟悉一下 the LINQ tutorial, lambda 。express
表达树提供了丰富的包含参数的函数方式。api
静态树解析数据结构
一个表达树是定义代码的数据结构ide
var sum = 1 + 2;
二元表达式, 更准确的来讲,是一个二元相加表达式, 二元表达式包含二个结点, 二个结点都是固定表达式, 左边是1, 右边是2函数
这是一个树的完总体this
定义定量状态 (var sum = 1 + 2;
)spa
var sum
)
var
)sum
)=
)1 + 2
)
1
)+
)2
)var finalAnswer = this.SecretSauceFuncion( currentState.createInterimResult(), currentState.createSecondValue(1, 2), decisionServer.considerFinalOptions("hello")) + MoreSecretSauce('A', DateTime.Now, true);
对比表达树, 上述的方式就太不直观, 扩展性差code
在.NET Core framework中存在大量的表达式类型, 你能够从这获取hereblog
// Addition is an add expression for "1 + 2" var one = Expression.Constant(1, typeof(int)); var two = Expression.Constant(2, typeof(int)); var addition = Expression.Add(one, two);
以上简单的使用一些静态类建立表达树ci