C# 计算字符串公式得出数值.(CalculateExpression)
C# 计算字符串公式得出数值.(CalculateExpression)
/// <summary>
/// 用于字符串公式得出数值如string s="2+2" 返回object o =4; /// </summary> public class CalculateExpression { /// <summary> /// 接受一个string类型的表达式并计算结果,返回一个object对象,静态方法 /// </summary> public static object Calculate(string expression) { try { string className = "Calc"; string methodName = "Run"; expression = expression.Replace("/", "*1.0/"); // 创建编译器实例。 CodeDomProvider complier = (new Microsoft.CSharp.CSharpCodeProvider()); // 设置编译参数。 CompilerParameters paras = new CompilerParameters(); paras.GenerateExecutable = false; paras.GenerateInMemory = true; // 创建动态代码。 StringBuilder classSource = new StringBuilder(); classSource.Append("public class " + className + "\n"); classSource.Append("{\n"); classSource.Append(" public object " + methodName + "()\n"); classSource.Append(" {\n"); classSource.Append(" return " + expression + ";\n"); classSource.Append(" }\n"); classSource.Append("}"); // 编译代码。 CompilerResults result = complier.CompileAssemblyFromSource(paras, classSource.ToString()); // 获取编译后的程序集。 Assembly assembly = result.CompiledAssembly; // 动态调用方法。 object eval = assembly.CreateInstance(className); MethodInfo method = eval.GetType().GetMethod(methodName); object reobj = method.Invoke(eval, null); GC.Collect(); return reobj; } catch (Exception ex) { ex.Message.ToString(); return null; } } }
参考文档:
C# 自动计算字符串公式的值(三种方式) C# 检查字符串,防SQL注入攻击 C#.NET 处理字符串数据去左右空格、全角转半角 C#.NET史上最全字符串加密/解密/数字签名工具(CryptoHelper.cs) C#.NET 对象(字符串)转换常用扩展方法 C#.NET 定义动态对象dynamic以及转换JSON字符串 C#日期类型转换工具(时间戳,字符串,long,byte类型互转) C# WebApi将查询字符串RequestUri.Query解析转换为Hashtable C#正则表达式查找或替换指定字符串(标识)范围的内容 C#使用分词算法从文本字符串中抽取关键词模拟百度搜索|CSFramework.COM巨献 C#类扩展方法,字符串对象转换,常用扩展方法StringExtensions C# GUID序列号转换生成唯一的16位短字符串或19位长数字序号 C# MD5字符串文本加密 C# 将GUID转换为最长16位的短字符串序号 C# 将数组、集合、可枚举类型转换成逗号分隔的字符串(String.Join)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |