当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

Expression Evaluator

.NET 表达式计算
授权协议 BSD
开发语言 C#
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 不详
投 递 者 通煜祺
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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]"

介绍 via cnblogs.com/asxinyu 

  • 尽管.NET社区热切盼望Roslyn的正式版本,但工作还是要继续。所以今天我们来介绍另一个编译器服务——Expression Evaluator。虽然其他编译器服务都试图尽可能地全面,但它却独辟蹊径。\ InfoQ:你说C# Expression Evaluator是一个轻量级库,是什么让它成为一个轻量级的库?什么样的库又是重量级的呢?\ \ Repert Avery:Expression Eva

  • 1.类定义 public class Company { private string name; private Employee managingDirector; public string Name { get { return this.name; } set { th

  • Language: 注意处理多余空格 Expression Evaluator Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 2087   Accepted: 644 Description This problem is about evaluating some C-style expressions. The exp

  • 由于一些特殊的原因,我的Expression里面需要支持中文变量名,但是C# Expression Evaluator会提示错误,在他的HelperMethods.IsAlpha()里面加上这么一段就行了 public static bool IsAlpha(char chr) { return (chr >= 'A' & chr <= 'Z') || (chr >= 'a' & chr

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

  • /* * POJ_3337.cpp * * Created on: 2013年10月29日 * Author: Administrator */ #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn = 10010; int data[26

  • Guest Post - The Expression Evaluator - Visual C++ Team Blog - Site Home - MSDN Blogs 转载于:https://www.cnblogs.com/hughlo/p/3243171.html

 相关资料
  • 使用DevTools控制台的求值计算功能,探测页面上任何项的状态。 DevTools控制台允许您以特别的方式了解页面中项的状态。他可以计算JavaScript的任何表达式,控制台本身支持几个功能。 TL;DR 计算键入的表达式。 使用其中一个快捷方式选择元素。 使用 inspect()检查DOM元素和JavaScript对象。 使用$0 - 4访问最近选择的元素和对象。 操作表达式 在控制台中输入

  • 主要内容:示例在MS Access中,表达式就像Excel中的公式。 这包括一些可以单独使用或组合使用以产生结果的元素。 表达式可以包括运算符,常量,函数和标识符。 表达式可用于执行各种任务,从检索控件的值或将查询条件提供给查询来创建计算的控件和字段,或者为报表定义组级别。 在本章中,我们将着重于创建一个称为计算表达式的非常具体的表达式。创建几个计算的字段,这些字段将计算并显示不存储在数据库本身任何位置的数据,

  • 当我们想临时修攺某个变量的值或查看其内部方法返回值的时候,可以使用计算表达式功能. Android Studio中提供了一个计算表达式和代码片段的功能, 使用起来非常方便.它除了支持正则表达式计算以外,还支持操作表达式,匿名表达式和内部类的计算. 两种计算模式: Expression Mode: 计算单行表达式 Code Fragment Mode: 计算代码片段, 我们可以对声明、赋值、循环和i

  • Evaluates simple math expression like 2*4 or 10/2 and outputs its result. You can use \ operator which is equivalent to round(a/b). 计算简单的数学表达式,比如2*4 或 10/2,并输出结果。\ 操作符结果同 round(a/b)。 Very useful in CS

  • 这是一个理论上的问题: 我必须计算一个表达式,我已经从中缀转换到后缀。后缀保存在中,因为我希望避免使用。这样我就知道数字之间的除法在哪里,我可以按“正确”的顺序访问它。 它看起来是这样的: 现在我想用两个堆栈: null 如果我到达一个运算符,并且数量计数至少为2,我将执行该操作并将其推到目标堆栈上。到达原始堆栈的末尾(现在是空的),我会把所有的东西都传递给它,然后从头开始,直到只剩下结果。 我现

  • 8 表达式计算/求值 在计算表达式时,ffmpeg通过libavutil/eval.h接口调用内部计算器进行计算。 表达式可以包含一元运算符、运算符、常数和函数 两个表达式expr1和expr2可以组合起来成为”expr1;expr2” ,两个表达式都会被计算,但是新表达式(组合起来的)值实为表达式expr2的值。 表达式支持的二元运算符有:+,-,*,/,^ 一元运算符:+,- 以及下面的函数:

  • 我们正在使用iReport 5.0.1,并且已经成功地转换了我们的许多水晶报告包。 我正在处理整数和双精度数据类型的混合数据,并且我正在详细信息部分的变量字段中执行计算。 然后,我有3个变量对详细数据求和。第一个变量是上面的细节变量的直接和。第二个根据IF..THEN.ELSE语句添加一个参数或第二个参数,第三个根据类似的IF..THEN.ELSE语句减去相同的参数值。 我需要舍入组页脚中的3个变

  • 本文向大家介绍MongoDB 中聚合统计计算--$SUM表达式,包括了MongoDB 中聚合统计计算--$SUM表达式的使用技巧和注意事项,需要的朋友参考一下 我们一般通过表达式$sum来计算总和。因为MongoDB的文档有数组字段,所以可以简单的将计算总和分成两种: 1,统计符合条件的所有文档的某个字段的总和; 2,统计每个文档的数组字段里面的各个数据值的和。这两种情况都可以通过$sum表达式来