我想在一个字段中存储表达式,比如存储“a+b*c”,然后  我给出a,b,c的值  就能够计算出那个表达式的值,应该如何写?

解决方案 »

  1.   

    首先添加引用1.  Microsoft.JScript.Vsa2.  Microsoft.JScript 方法如下:/// <summary>
    /// 计算 字符串表达式
    /// </summary>
    /// <param name="Formule">字符串计算表达式</param>
    /// <returns></returns>
    private string CaleByFormule(string Formule)
    {
        Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
        return Microsoft.JScript.Eval.JScriptEvaluate(Formule, ve).ToString();
    }
      

  2.   

    new System.Data.DataTable().Compute(string.Format("{0}+{1}*{2}", a, b, c), null)
      

  3.   

    Compute(string.Format("{0}+{1}*{2}", a, b, c), null)
      

  4.   

    不好意思  忘记说了  我做的不是webform的,是winform
      

  5.   

    winform 一样
    object a=new DataTable(string.Format("{0}+{1}*{2}",a,b,c),"");
      

  6.   

    方法这么多啊,学习一下。感觉javascript挺好,效率都不高吧。能编译检查表达式合法性吗?
      

  7.   

    好像叫什么逆波兰吧。这个和语言关系不大,主要是简单的一些小算法,把中缀表达式改成后缀表达式,然后利用栈计算出结果而已,如果LZ有心可以去搜索一下。整个算法不难,但几百行代码是肯定的。如果只是为了使用,可以搜索成熟的库。好像.net中有个叫Eval什么的库就是干这个的。
      

  8.   

    i came here for learing..