オペランド/演算子をパラメーターとして受け取り、評価結果を提供する関数が必要です。私が直面している問題は、演算子をエレガントに解析する方法です。
サンプルコードは以下の通り
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.
上記のコード (エバリュエーター関数) をエレガントにリファクタリングする方法を提案してください。