我可以这样做;
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; };
那么我怎样才能像第一个例子一样计算并将其分配给代表,如第二个例子?
目标是只进行一次计算工作,然后将其用于许多变量。
答案 0 :(得分: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();
答案 1 :(得分:0)
您只需创建使用DataTable.Compute
。
Func<double, double> function = x =>
(double)(new DataTable().Compute(x + " * 10 / 3", null));