动态编译。
计算器是这么做的,用一个stack分析输入字符串 "1+1",遇到 + 就把 + 之前的 "1"转换成 int,+之后输入的字符也转换成 int,如下:
int m = int.Parse("1");
int n = int.Parse("1");
int sum = m + n;
我只是简单举个例子,实际的词法分析复杂的多.
字符串输入 然后 把数字转换 接着根据 中间的字符来判断和做 了 啊
.net 的 DataSet 有一个 Calculated DataColumn 这个东西可以计算表达式的,你输入一个表达式,它自动就可以给算出来,很方便。你参考下面文章
http://msdn.microsoft.com/en-us/library/3df0c8ey%28VS.71%29.aspx
http://ondotnet.com/pub/a/dotnet/2003/05/26/datacolumn_expressions.html
http://www.cnblogs.com/livexy/archive/2010/07/05/1771683.html
调用方法:
Expression expression = new Expression("return 1+1;");
return expression.Compute(0);