处理表达式树可以说是所有要实现Linq To SQL的重点,同时他也是难点.笔者看完作者在LinqToDB框架里面对于这一部分的设计之后,心里有一点不知所然.由于很多代码没有文字注解.所以笔者只能接合上下代码来推断出作者大概在做什么.但是有些笔者只知道在做什么却很难推断出作者为什么要这么做.这一部分的主要核心类有俩个--Query<T>类和ExpressionBuilder类.可以用一句话来形容:由Query<T>类起也由Query<T>类落. 处理优化表达树 上一章我
思路:一共4个数字,共需要3个运算符,可以构造一个二叉树,没有子节点的节点的为值,有叶子节点的为运算符 例如数字{1, 2, 3, 4},其中一种解的二叉树形式如下所示: 因此可以遍历所有二叉树可能的形式,4个数的全排列,从4种运算符中挑选3种运算符(运算符可以重复) 核心步骤1:需要遍历所有二叉树的可能,参考Eric Lippert的方法 class Node { public Node Left { get; private set; } public Node Right { get; p