C# EVAL EXPRESSION ——表达式引擎Eval Expression
序言
在某些项目中,引入公式也是一个方便用户的需求,C#公式库最有名的莫过于Eval Expression,
看个例子:
var compiled_3 = Eval.Compile<Func<string, string, string>>("var a= X.ToUpper() + Y; var b= X.ToUpper() + Y;var c= X.ToUpper() + Y;var d= X.ToUpper() + Y;" +"var a1= X.ToUpper() + Y; var b2= X.ToUpper() + Y;var c2= X.ToUpper() + Y;var d2= X.ToUpper() + Y;" +"return a +d;", "X", "Y");
var results = compiled_3("City", "ABC");
是的,这个样子操作,感觉c#就是一个脚本语言了。
推荐
公式操作、表达式动态语句,可以考虑使用 Eval Expression。
解决方案:利用Eval Expression插件
插件官网:http://eval-expression.net/
特别文件
基于net5,我准备了特别文件 ,不需要每个月的重新下载了,可以使用到2099年。 下载参见地址
使用说明
因为是引用dll的关系,需要自己配置需要的包,包清单如下:
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="5.0.0" />
<PackageReference Include="Microsoft.OData.Core" Version="7.8.3" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
<PackageReference Include="System.Collections.Concurrent" Version="4.3.0" />
<PackageReference Include="System.Collections.NonGeneric" Version="4.3.0" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.5.0" />
<PackageReference Include="System.Data.Common" Version="4.3.0" />
<PackageReference Include="System.Linq.Queryable" Version="4.3.0" />
<PackageReference Include="System.Reflection.Emit" Version="4.7.0" />
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.5.0" />
<PackageReference Include="System.Xml.XPath" Version="4.3.0" />
C# EVAL EXPRESSION ——表达式引擎Eval Expression相关推荐
- 表达式树(EXPRESSION TREE)
表达式树是不可执行的代码,它只是用于表示一种树状的数据结构,树上的每一个节点都表示为某种表达式类型,大概有25种表达式类型,它们都派生自Expression类.创建表达式树具体有两个优势: 1.对表达 ...
- java fel_Java表达式引擎fel/groovy/expression4j/java脚本引擎的性能对比【原创】
又是性能对比,最近跟性能较上劲了. 产品中需要用到数学表达式,表达式不复杂,但是对性能要求比较高.选用了一些常用的表达式引擎计算方案,包含:java脚本引擎(javax/script).groovy脚 ...
- linux 生成字母序列,讲解在Linux平台中的Bash序列表达式(Sequence Expression)
在本文中,我们将介绍Bash中序列表达式(Sequence Expression)的基础,以在Linux平台中为例.Bash序列表达式通过定义范围(Range)的起点和终点来生成整数或字符范围,它通常 ...
- c# 经验谈:巧用Expression表达式 解决类似于sql中 select in 的查询(适合于中小型项目)...
我们在项目经常会碰到一些特殊需求 例如下拉框是复选的,查询条件是根据下拉框中复选项进行拼接 看到此图后大家肯定会说,这很简单嘛 将所有的选项 拼成"'1-3','5-9'" 然后 ...
- [css] 你有用过IE css的expression表达式吗?说说你对它的理解和它有什么作用呢?
[css] 你有用过IE css的expression表达式吗?说说你对它的理解和它有什么作用呢? 主要用来解决IE 低版本样式自适应的问题. 比如:height:expression(this.of ...
- 第十五节:Expression表达式目录树(与委托的区别、自行拼接、总结几类实例间的拷贝)
一. 基本介绍 回忆: 最早接触到表达式目录树(Expression)可能要追溯到几年前使用EF早期的时候,发现where方法里的参数是Expression<Func<T,bool> ...
- C#中利用Expression表达式树进行多个Lambda表达式合并
在上一文中介绍使用了合并两个Lambda表达式,能两个就能多个,代码如下图所示: public static class ExpressionHelp{private static Expressio ...
- 详解Python中的生成器表达式(generator expression)
生成器表达式(generator expression)也叫生成器推导式或生成器解析式,用法与列表推导式非常相似,在形式上生成器推导式使用圆括号(parentheses)作为定界符,而不是列表推导式所 ...
- idea中js函数中使用EL表达式报错expression expected以及参数underfined的问题.md
EL表达式显示错误expression expected问题: 这段代码在MyEclipse中没有问题,因为idea的严格代码检查,这里会显示expression expected的错误,原因是因 ...
最新文章
- 【生活随想】实习结束以及开始校园招聘
- 我的世界java版怎么打不开_JAVA版我的世界打不开,求助!
- 精算模型10 非参数模型0 精算数据、非参数建模的思路概述
- cpu,内存和disk使用报警脚本
- 【Java】Synchronized解析以及多种用法
- 基于android的高仿抖音,Android仿抖音列表效果
- 关于svn的安装配置开启服务过程和 eclipse安装SVN插件的方法
- STM32F103定时器输入捕获功能
- azure云数据库_Azure SQL数据库的性能调优
- JS写的简单的图片播放器
- 修改hosts文件,解决端口占用方法
- 齿轮的正负变位设计要点
- 第六节:通信之WLAN(SSID)
- 最完整的dos命令字典,IIS服务命令,FTP命令
- 如何通过三视图判断立方体个数_中考难点,由三视图确定小立方体个数的问题求解有策略...
- HTTP中POST和PUT的区别
- 2020 年 12 月编程语言排行榜
- Android含资源文件引用的项目打包成jar包
- Python更新pip错误解决方法
- 罗斯蒙特3051变送器的优势在哪里?
热门文章
- OpenGL随笔九 opengl使用glm 3D转2D投影
- android 表格控件 滚动条,tkinter给表格控件(treeview)添加滚动条
- IDEA自定义配色方案
- SpringBoot整合Mybatis逆向工程
- i3 7100黑苹果_五千元游戏主机请这样搭配:九代酷睿i3比你想象中更好用
- LibVLC+Qt调用libvlc_new在Debug下正确运行Release下崩溃(VS2008)
- python自定义类模拟三维向量及其运算_设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘...
- 1051: 平方根的和 ZZULIOJ
- PM配置详解之四:维护和服务处理
- 基于element组件商品sku多规格