比如:在一个TextBox里输入(1+2)*3.这是个字符串类型,如何得到计算后的结果9呢??
  第二个问题就是:昨天我上个网站,把鼠标模拟成了笔,可以通过按下,点击,移动等动作在上面写字,觉得挺有意思。这怎么实现的??

解决方案 »

  1.   

    /// <summary>
    /// 计算一个表达式的结果
    /// </summary>
    /// <param name="expression">表达式</param>
    /// <returns></returns>
    public static object Eval(string expression)
    {
    System.Data.DataTable table = new System.Data.DataTable();
    System.Data.DataColumn Col = new System.Data.DataColumn("col1", typeof(string), expression);
    table.Columns.Add(Col);table.Rows.Add(new object[] { "" });
    return table.Rows[0][0];
    }
      

  2.   

    1.这个问题应该要用到堆栈,将操作数和操作符依次分别入栈再根据操作符的优先顺序出栈得出结果2.应该是用GDI+吧
      

  3.   

    表达式计算  
    有多种方法  数据结构里面就有什么 前缀表示法  后缀表示法  
    还可以用树阿 什么的来实现  我给的方法只是一种。Net下很简单的实现
    也有专门的书讲这种算法的设计
      

  4.   

    这种方法应该说是比较简单的 不需要去构造复杂的代码 一般情况下用足够了完全。
    利用。Net的代码动态编译功能
      

  5.   

    是的,我感觉应该可以通过String.Format(..........)将数字字符串进行格式化后,就能根据具体进行处理
      

  6.   

    可以通过调用脚本实现,
    http://blog.csdn.net/zhzuo/archive/2004/04/26/22031.aspx
    C# Script (missing puzzle piece)
    By Oleg Shilo 
    http://www.codeproject.com/csharp/cs-script_for_CP.asp
    C# Script for .NET 2.0
    http://www.codeproject.com/csharp/CSharpScript.asp