zoukankan      html  css  js  c++  java
  • Expression<>, Func<>, Action<>的区别与联系

    Fun<>与Action<>

    1. Func<>与Action<>都是匿名委托, 二者的区别在于:
    1. Fun<>带返回值, 且至少有一个参数, Action<>不带返回值,且可以没有任何参数, 简而言之, Action<>比Func<>更加简单.

    Fun<>与Expression表达式树

    1. Expression表达式树是一种数据结构, 用于存储粗腰计算, 运算的一种结构, 这种结构只可以存储而不能进行计算.
    2. Fun<>匿名函数一旦定义则不能在运行时进行改变, 改变是动态构造, 而不是重新定义, 表达式则可以.
    3. Fun<>需要将这种表达式换成另一种形式时, 则必须使用Expression辅助.
    4. Expression表达式树可以在运行时, 分析它的数据结构, 而Fun则不可以.
    5. Fun<>可以理解为是编译后的状态, Expression可以理解为编译前的状态.

    总结

    • 一般情况下需要将Expression表达式树进行配合使用, 用作在基类中.
      example: Expression<Fun<T,bool>>predicate
  • 相关阅读:
    【模板】Sparse-Table
    UVa 11235 Frequent values
    【模板】树状数组
    UVa 1428 Ping pong
    数学技巧
    UVa 11300 Spreading the Wealth
    UVa 11729 Commando War
    UVa 11292 Dragon of Loowater
    POJ 3627 Bookshelf
    POJ 1056 IMMEDIATE DECODABILITY
  • 原文地址:https://www.cnblogs.com/lsb123/p/14239684.html
Copyright © 2011-2022 走看看