日期:2014-05-16  浏览次数:20899 次

C#一个方法传入一个算术参数,如何计算这个算术题并返回一个Int值
比如:
string strParamer = "90+10-50*2";
public int FindParamer(strParamer)
{
     如何 计算 字符串 strParamer  里面的 90+10-50*2 
    并返回 计算的结果int值;
}

谢谢大家!
------解决方案--------------------
http://hi.baidu.com/odqljxdnckbenuq/item/29eb6b00742f61d8dce5b077
可以研究用Microsoft.JScript;来做
------解决方案--------------------

public int FindParamer(string strParamer)
        {
            CSharpCodeProvider provider = new CSharpCodeProvider();
            CompilerParameters parameter = new CompilerParameters();
            parameter.ReferencedAssemblies.Add("System.dll");
            parameter.GenerateExecutable = false;
            parameter.GenerateInMemory = true;
            CompilerResults result =
                provider.CompileAssemblyFromSource
                (
                    parameter,
                    "using System;" +
                    "namespace calculate" +
                    "{" +
                        "public static class calculation" +
                        "{" +
                        "public static int calculateExpression()" +
                        "{" +
                            "return " + strParamer +
                        ";}}}"
                );
            return Convert.ToInt32(result.CompiledAssembly.GetType("calculate.calculation").GetMethod("calculateExpression").Invoke(null,new object[]{}));
        }

------解决方案--------------------
上次找过一个,现在懒得找了    试试google eval +&n