我需要一个将操作数/运算符作为参数并提供评估结果的函数。我面临的问题是如何优雅地解析运算符。
示例代码如下
internal static bool Evaluator(double operand1, double operand2, string operation)
{
bool evaluation = false;
switch (operation)
{
case "<":
evaluation = operand1 < operand2;
break;
case ">":
evaluation = operand1 > operand2;
break;
case "<=":
evaluation = operand1 <= operand2;
break;
default:
break;
}
return evaluation;
}
我可以将运算符放在枚举(或可扩展枚举)中,并使用策略模式来删除开关盒。问题仍然存在,我无法解析运算符。例子
op1="<";
var operation = Operation.Parse(op1);
var result = operand1 <-- operation should come here --> operand2.
请建议如何优雅地重构上面的代码(Evaluator 函数)。