string s = "+";
int num1 = Convert.ToInt32(stack.Pop());
int num2 = Convert.ToInt32(stack.Pop());
if (s.Equals("+"))
{
int num = num2 + num1;
stack.Push(num);
}
else if (s.Equals("-"))
{
int num = num2 - num1;
stack.Push(num);
}
else if (s.Equals("*"))
{
int num = num2 * num1;
stack.Push(num);
}
else if (s.Equals("/"))
{
int num = num2 / num1;
stack.Push(num);
}
我有一个字符串string s = "+";能不能让他直接作为操作符,而不用判断那么多
还可以引用JScprpt,里面有Eval类可以直接对字符串求值。其实你就是觉得这样判断代码写起来麻烦嘛(效率其实不低,if语句比调用一个庞大的操作类,速度快),那你可以包装一个函数反复使用,参数就3个,2个要计算的值,一个操作符(字符串),函数内判断,这样就不麻烦了,重复利用。
{
int num1 = Convert.ToInt32(stack.Pop());
int num2 = Convert.ToInt32(stack.Pop());
if(s=="+")
int num=num1+num2;
return stack.Push(num);
...........
}