C# 如何在C语言中将变量参数传递给内部方法#

C# 如何在C语言中将变量参数传递给内部方法#,c#,python,python-2.7,params,args,C#,Python,Python 2.7,Params,Args,我在python中有一个函数,它使用一个函数和args(tuple)作为其内部函数的输入:我可以使用params和Action InnedMethod()复制这些函数。但是,在这里如何将输入变量(参数)包装到InnerMethod?我怎样才能做到这一点 蟒蛇 def wrap_function(function, args): ncalls = [0] if function is None: return ncalls, None def func

我在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;
}
private double ObjectiveFunctionWrapper(IFunction f,元组参数)
{
int-ncalls=0;
动作函数_包装器=()=>
{
ncalls=ncalls+1;
f(参数)
};
函数_wrapper();
返回NCALL;
}

要将
参数[]
数组传递给函数参数,请使用
操作
参数定义方法(而不是
IFunction
),并使用以下代码位:

public Action<T> SetParameters(Action<object[]> action, params object[] parameters)
{
    return delegate { action(parameters) };
}
public Action SetParameters(Action-Action,params-object[]参数)
{
返回委托{action(parameters)};
}