c#LINQ表达树

若是你已经用过LINQ, 你应该知道函数方式,以及包含的丰富的类库, 若是你仍不了解, 那根据下面的连接去熟悉一下 the LINQ tutorial,  lambda express

表达树提供了丰富的包含参数的函数方式。api

静态树解析数据结构

一个表达树是定义代码的数据结构ide

var sum = 1 + 2;

二元表达式, 更准确的来讲,是一个二元相加表达式, 二元表达式包含二个结点, 二个结点都是固定表达式, 左边是1, 右边是2函数

这是一个树的完总体this

定义定量状态 (var sum = 1 + 2;)spa

  • 显示声明变量 (var sum)
    • 显示声明var类型 (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

相关文章
相关标签/搜索