C# 字符串计算表达式
2014-07-30 14:29
190 查看
C# 字符串计算表达式
string str="4+4+2.1";
要的效果: double sum=4+4+2.1;
方案一:
动态计算表达式:
View Code
方案二:
欢迎你们提供!
string str="4+4+2.1";
要的效果: double sum=4+4+2.1;
方案一:
动态计算表达式:
1 public class Expression 2 { 3 object instance; 4 MethodInfo method; 5 /// <summary> 6 /// 表达试运算 7 /// </summary> 8 /// <param name="expression">表达试</param> 9 public Expression(string expression) 10 { 11 if (expression.IndexOf("return") < 0) expression = "return " + expression + ";"; 12 string className = "Expression"; 13 string methodName = "Compute"; 14 CompilerParameters p = new CompilerParameters(); 15 p.GenerateInMemory = true; 16 CompilerResults cr = new CSharpCodeProvider().CompileAssemblyFromSource(p, string. 17 Format("using System;sealed class {0}{{public double {1}(double x){{{2}}}}}", 18 className, methodName, expression)); 19 if (cr.Errors.Count > 0) 20 { 21 string msg = "Expression(\"" + expression + "\"): \n"; 22 foreach (CompilerError err in cr.Errors) msg += err.ToString() + "\n"; 23 throw new Exception(msg); 24 } 25 instance = cr.CompiledAssembly.CreateInstance(className); 26 method = instance.GetType().GetMethod(methodName); 27 } 28 /// <summary> 29 /// 处理数据 30 /// </summary> 31 /// <param name="x"></param> 32 /// <returns>返回计算值</returns> 33 public double Compute(double x) 34 { 35 return (double)method.Invoke(instance, new object[] { x }); 36 }
View Code
方案二:
欢迎你们提供!
相关文章推荐
- C#将字符串转换成运算表达式并得到计算结果
- 字符串表达式计算C#程序设计
- c#中实现类似js的Eval|.NET中执行Javascript(表达式是字符串的计算)
- C#中实现字符串表达式计算
- 在C#中解决动态计算表达式的问题(如字符串"Sin(1)+Cos(2)",执行并得出结果)
- C#中利用正则表达式实现字符串搜索[转]
- (转载)在C#中利用反射计算字符表达式
- 如何在C#里面象js一样可以直接计算字符串的值
- 数据结构之应用 "栈(Stack)" 实现: 解析算术表达式及计算求值 (C#/Java)
- C#利用正则表达式实现字符串搜索
- C# 判断一字符串是否为合法数字(正则表达式)
- 数据结构中用C#实现"表达式计算"
- C#中计算表达式的值
- 如何在C#里面象js一样可以直接计算字符串的值
- 利用正则表达式计算含有中文的字符串长度
- (转)C#中利用正则表达式实现字符串搜索
- [转载]数据结构中用C#实现"表达式计算"
- 计算出用字符串表示的数学表达式的值
- 数据结构之应用 "栈(Stack)" 实现: 解析算术表达式及计算求值 (C#/Java)
- 用于执行(计算) "字符串表达式" 的 T-SQL 存储过程