C# 如何创建动态数学函数?
可能重复:C# 如何创建动态数学函数?,c#,delegates,C#,Delegates,可能重复: 我能做到这一点 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; }; 那么,我如何像第一个例子那样进行计算,并将其分配给像第二个例子那样的委托呢 目标是只进行一次计算工作,然后将
我能做到这一点
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; };
那么,我如何像第一个例子那样进行计算,并将其分配给像第二个例子那样的委托呢
目标是只进行一次计算工作,然后将其与许多变量一起使用。您只需要创建使用
DataTable.compute的方法(匿名或非匿名)
Func<double, double> function = x =>
(double)(new DataTable().Compute(x + " * 10 / 3", null));
Func函数=x=>
(双精度)(新数据表().Compute(x+“*10/3”,null));
我会用它来满足这些需求。比如说
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();
可能是的重复项,并且您想要一个内联委托,而不仅仅是一个类方法?