表达式树是一种树形数据结构,通过动态语言运行时 (DLR) 将一组动态语言服务添加到公共语言运行时 (CLR),为静态类型语言添加动态特征。...C#属于静态语言.简而言之,就是通过CLR引入DLR,DLR中包含了表达式树的功能,那么C#代码就具备了将静态代码转换成动态代码的功能.常用于一些运算逻辑的转换.将运算逻辑转换成数据结构缓存到内存中.比如通过表达式树缓存通过反射构建对象的过程...price = price / 2;
return price;
}
如上代码能很好的完成需求,但是每个商品的促销活动都大不相同,且商品很多,所以客户提出这个促销活动的具体的扣价规则可以配置....显然上面的代码不满足需求.所以我们需要通过某种方式去存储计算规则.并且可以让客户自行配置.有一种方式是维护一张规则表,存储运算符号,然后通过如下方式:
//促销活动1...if (user 参与促销活动1)
price=(float)(new DataTable().Compute("{price} - 2", ""));
通过将计算规则存入数据库