0

重複の可能性:
C#式を動的に評価するにはどうすればよいですか?

私がすることができます;

int x = 6;
var result = new DataTable().Compute(x + " * 10 / 3", null);

この;

public delegate double function(double x);
function func = delegate(double x) { return x * 10 / 3; };

では、最初の例のように計算して、2番目の例のようにデリゲートに割り当てるにはどうすればよいですか?

目標は、計算作業を1回だけ実行し、それを多くの変数で使用することです。

4

2 に答える 2

1

この種の要件にはNCalcを使用します。例えば

NCalc.Expression expr = new NCalc.Expression("x * 10 / 3");
expr.EvaluateParameter += (name, args) =>
    {
        if (name == "x" && somecondition == 1) args.Result = 6;
        if (name == "x" && somecondition == 2) args.Result = 12;
    };
var result = expr.Evaluate();
于 2012-12-17T19:09:56.267 に答える
0

を利用するメソッド(匿名かどうかに関係なく)を作成するだけですDataTable.Compute

Func<double, double> function = x => 
    (double)(new DataTable().Compute(x + " * 10 / 3", null));
于 2012-12-17T19:05:16.213 に答える