我想在c#
中将字符串转换为运算符 **string type = "+";
int d = 22;
int c = 33;
int total;
total = d + type + c;**
怎么做?
此致
答案 0 :(得分:1)
您无法将字符串转换为“运算符”。操作符是为其操作数定义的,如果你不知道你的操作数是什么,将字符串转换为操作符是没有意义的。
假设您确实知道自己拥有哪些操作数,问题不再是“转换”本身,而是实际上您正在尝试构建解析引擎。这是一个相当困难的问题。除非你真的试图创建自己的脚本语言或这种性质的东西,否则使用查找表可能更容易,表中的每个元素都指的是可以在操作数上运行的某些方法。
在C#中,可以使用简单的switch
语句来实现这样的数据结构(当然,您可以根据需要无限制地使用它,但这是最简单的解决方案)。
switch( type )
{
case "+":
return plusOperator(d, c);
case "-":
return minusOperator(d, c);
}
然后,您可以定义合适的方法,例如plusOperator
和minusOperator
,以实际实现程序的逻辑。
这个解决方案相当脏,因为你对某些行为进行了硬编码,但实际上如果你想要在良好的系统架构方面远远超过这个,它就会成为一个解析问题。如果你走这条路,四人帮的设计模式将成为一个很好的参考资料(特别是解释器,迭代器和复合材料等模式)