我在python中有一个函数,该函数使用一个函数和args(tuple)作为其内部函数的输入:我可以使用params和Action InnedMethod()复制这些函数。但是,如何在此处将输入变量(参数)包装到InnerMethod?我该如何实现。
蟒蛇
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;
}
最佳答案
要将params[]
数组传递给函数参数,请使用Action<T>
参数(而不是IFunction
)定义您的方法,并使用以下代码:
public Action<T> SetParameters(Action<object[]> action, params object[] parameters)
{
return delegate { action(parameters) };
}
关于c# - 如何在C#中将变量参数传递给Inner方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35274480/