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