0

経営陣は、次のような計算でブール式を使用することをお勧めします。

x = (y < 4) * 1 + (z < 8) * 4 ...

私は数式の評価に NCalc を使用していますが、残念ながら、整数とブール値を乗算しようとしているため、NCalc は文句を言います。

false が 0 に変換され、true が 1 に変換されるように NCalc を拡張する方法はありますか?

4

1 に答える 1

0

ソースコードを変更することになりました。誰かが同じ問題に遭遇した場合に備えて、Numbers.cs には、すべての種類の演算子の動作を変更できる一連の switch ステートメントがあります。私の特定のケースでは、Multiply(object a, object b) で、デフォルトの動作を例外のスローから次のように変更しました。

case TypeCode.Int32:
   switch (typeCodeB)
   {
      case TypeCode.Boolean: return ((bool) b) ? (Int32)a : 0;
   }
...
于 2015-05-19T08:22:56.033 に答える