オペランド/演算子をパラメータとし、評価結果を提供する関数が必要です。 私が直面している問題は、オペレータをエレガントに解析する方法です。マッチオペレータとリファクタリングスイッチケースの解析
サンプルコードは、私がスイッチケースを除去するために、列挙(又は伸縮列挙)と使用戦略パターンでの演算子を置くことができる
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.
エレガントなコードの上(評価者機能)をリファクタリングする方法を提案してください。
独占的な実装は私にとってはきれいだ。 Funcに関して、あなたは正しいです、新しいクラスはより良いです。 – Tilak