转 C# 将字符串转换为计算公式,并计算结果
2024-09-04 07:21:16
根据总结,大概分为以下三种:
第一种: 用DataTable中的Compute方法。
例如:" 1*2*3 "
代码如下:
var a = new System.Data.DataTable().Compute("1*2*3", "");
//结果a=>6
第二种:利用javascript中的Eval方法解析.此方法需引入添加COM引用:Microsoft Sctipt Control 1.0
在使用过程中,若出现无法嵌入互操作类型“MSScriptControl.ScriptControlClass”,则可以这样操作。右击MSScriptControl程序集--〉属性--〉嵌入互操作类型--〉改为false
让我们看下这个方法的强大之处:
例如:"1*2*3"
此方法还能解析像这种等字符串 :“if(3>2){ 1 }else { 2}”
代码如下:
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControlClass();
sc.Language = "javascript";
var b = sc.Eval("1*2*3");
//结果b=>6
第三种: 引入添加.net 引用 Microsoft.JScript 和Microsoft.Vsa
个人认为此方法跟方法二是一样的,具体区别不清楚
例如:"1*2*3"
此方法还能解析像这种等字符串 :“if(3>2){ 1 }else { 2}”,跟方法二一样。
代码如下:
Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
var c = Microsoft.JScript.Eval.JScriptEvaluate("1*2*3", ve);
//结果c=>6
最新文章
- expect脚本语言用法示例
- 几个功能强大的系统源码(机票分销、机票预订、OA、手机充值、wifi营销、网络超市、体检平台)
- setTimeout,clearTimeout和setInterval
- 浅谈B树
- 使用Xpath对XML进行模糊查询
- TCP/IP协议学习(一) LWIP实现网络远程IAP下载更新
- Android SDK Manager更新不了的解决办法
- ZOJ Monthly, August 2014
- C#如何释放已经加载的图片 (转)
- perl 获取文件内容里第一个AAA和最后一个AAA
- angular 路由的引用
- CentOS7: How to install Desktop Environments on CentOS 7?
- Centos下部署Flask
- 第二周 IP通信基础回顾
- pycharm中查看源码的快捷键
- 五、Singleton 单例模式
- hadoop - hdfs 基础操作
- 使用filezilla server搭建FTP服务器
- 【原创】标准HTTP请求工具类
- Android Studio:Multiple dex files define Landroid/support/annotation/AnimRes