关于用户自定义计算公式如何分析??
假设: 
 a   b   c   d四个数 
 由用户在文本框中输入公式,并计算出结果。 
 涉及到的计算有+   -   *   /   (), 
 例: 
 文本框内的内容如下(a*b+c)*c+(d-c)*b+5   
 要如何对公式进行分析,并识别出不正确的公式, 
 比如输入了非法的字符,或某个数除以了0等等。
------解决方案--------------------把它做为一个Sql语句去执行就可以了:)
------解决方案--------------------这样: 
 using System; 
 using System.Xml; 
 using System.Xml.XPath; 
 using System.Text;   
 namespace Wuyh 
 { 
 	///  <summary>  
 	/// 简单转换类 
 	/// 计算字符表达式 
 	///  </summary>  
 	public class Converts 
 	{		        
         ///  <summary>  
         /// 计算字串表达式的值 
         ///  </summary>  
         ///  <param name= "p_str "> 字符表达式如:1+2+3 </param>  
         ///  <returns>  </returns>  
         private Converts() 
         { 
         }          
         public static double Evaluate(string p_str) 
         { 
             double rtnValue=0; 
             XmlDocument doc = new XmlDocument(); 
             XPathNavigator nav=doc.CreateNavigator(); 
             try 
             { 
                 rtnValue=Convert.ToDouble(nav.Evaluate(p_str)); 
             } 
             catch 
             { 
                 rtnValue=0; 
             } 
             return rtnValue; 
         } 
   } 
 }
------解决方案--------------------///  <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]; 
 }
------解决方案--------------------查查递归向下的解析器的实现机制,会有帮助