当前位置: 首页 > news >正文

.NET 表达式计算:Expression Evaluator

Expression Evaluator 是一个轻量级的可以在运行时解析C#表达式的开源免费组件。表达式求值应该在很多地方使用,例如一些工资或者成本核算系统,就需要在后台动态配置计算表达式,从而进行计算求值。相比 NCal,还是这个 Expression Evaluator 比较强大,虽然部分功能有重叠。也都能计算常规的数学表达式。

Expression Evaluator 支持的特性有:

  • 支持算术运算符,支持关系运算符,以及逻辑运算符

  • 支持表达式分组和括号,以及递增递减运算符

  • 支持表达式属性访问以及动态类型,支持字符串的+运算

  • 支持数值类型的后缀d/f/m/l/u/ul、

  • 支持隐式表达式,以及成员访问操作符(.)

  • 支持一些默认的类型,如double, float, char, string, DateTime, Convert, Math

  • 支持foreach循环

  • 。。。等等,更多功能还期待你的使用和发现

简单的数值表达式就不演示了,看一个比较有新意的代码:

class MyClass
{
     public string[] myExternalString;
     public int x;
}
  
var v = new MyClass();
v.myExternalString = new string[] { "Hello", "there", "World!" };
v.x = 2;
//关键点,注册符号v
registry.RegisterSymbol("v", v);
//动态计算属性
//返回结果是"there",因为v.x=2,2/2=1,所以返回索引1的值
"v.myExternalString[v.x/2]"

 

项目主页:http://www.open-open.com/lib/view/home/1435843266122

转载于:https://www.cnblogs.com/screes/p/6050592.html

相关文章:

  • 2016-11-10试题解题报告
  • Java中的Random()函数
  • SSD硬盘的4K对齐
  • 《深入理解Java7核心技术与最佳实践》读书笔记(1.1)---Project Coin介绍
  • 关闭CENTOS不必要的默认服务
  • 改变的六条规则
  • ThinkPAD e450 安装 win 7 系统 BIOS设置
  • storm togolopy转换jstorm topology
  • maven公共仓库
  • JavaScript函数表达式
  • lolcat彩虹色输出文本
  • Bootstrap学习笔记系列5------Bootstrap图片显示
  • 二.第十一单元 系统恢复
  • linux学习笔记8
  • MarkdownPad2.5 注册码
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • co.js - 让异步代码同步化
  • HTTP请求重发
  • idea + plantuml 画流程图
  • React Transition Group -- Transition 组件
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Vue--数据传输
  • 大型网站性能监测、分析与优化常见问题QA
  • 欢迎参加第二届中国游戏开发者大会
  • 力扣(LeetCode)357
  • 你不可错过的前端面试题(一)
  • 如何选择开源的机器学习框架?
  • 使用 Docker 部署 Spring Boot项目
  • 在Docker Swarm上部署Apache Storm:第1部分
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 阿里云服务器购买完整流程
  • 数据可视化之下发图实践
  • $ git push -u origin master 推送到远程库出错
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (二)Linux——Linux常用指令
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .net framework4与其client profile版本的区别
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • /proc/stat文件详解(翻译)
  • @JSONField或@JsonProperty注解使用
  • @我的前任是个极品 微博分析
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C# WPF] 如何给控件添加边框(Border)?
  • [C++]priority_queue的介绍及模拟实现
  • [HOW TO]怎么在iPhone程序中实现可多选可搜索按字母排序的联系人选择器
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页
  • [Invalid postback or callback argument]昨晚调试程序时出现的问题,MARK一下
  • [IT生活推荐]大家一起来玩游戏喽,来的都进!
  • [LeetCode]-使用特殊算法的题目-2