我在python中有一个函数,它使用一个函数和args(元组)作为其内部函数的输入:我可以使用 params 和 Action InnedMethod()复制它们。但是如何将输入变量(params)包装到InnerMethod中呢?我怎样才能做到这一点。
PYTHON
def wrap_function(function, args):
ncalls = [0]
if function is None:
return ncalls, None
def function_wrapper(*wrapper_args):
ncalls[0] += 1
return function(*(wrapper_args + args))
return ncalls, function_wrapper
CSHARP:我正在尝试复制上面的Python函数
private double ObjectiveFunctionWrapper(IFunction f, Tuple<List<double>, List<double>> args)
{
int ncalls = 0;
Action function_wrapper = () =>
{
ncalls = ncalls + 1;
f(params )
};
function_wrapper();
return ncalls;
}
答案 0 :(得分:2)
要将params[]
数组传递给函数参数,请使用Action<T>
参数(而不是IFunction
)定义方法,并使用以下代码:
public Action<T> SetParameters(Action<object[]> action, params object[] parameters)
{
return delegate { action(parameters) };
}