zoukankan      html  css  js  c++  java
  • c#LINQ表达树

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

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

    静态树解析

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

    var sum = 1 + 2;

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

    这是一个树的完整体

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

    • 显示声明变量 (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);

    对比表达树, 上述的方式就太不直观, 扩展性差

    在.NET Core framework中存在大量的表达式类型, 你可以从这获取here

    // 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);

    以上简单的使用一些静态类创建表达树

  • 相关阅读:
    蓝牙低功耗(Bluetooth Low Energy)
    Android 蓝牙(概述)
    Android 学习笔记之 Activity 简介
    Android 学习笔记之常用控件
    Android 学习笔记之界面布局
    委托和事件(C#)
    Java 资源汇总
    如何阅读英文原版教材
    Combobox 控件绑定数据
    《将博客搬至CSDN》
  • 原文地址:https://www.cnblogs.com/frankzye/p/7542295.html
Copyright © 2011-2022 走看看