使用字符串数组作为函数参数

时间:2018-08-28 14:26:32

标签: c# arrays methods parameters

我已经做过一些研究,但很惊讶我没有找到解决这个简单问题的方法。


编辑:问题是,是否可能,或者C#无法提供任何方法来执行我要尝试的操作

在下面的示例中,我想使用IWannaBeCalled数组中的参数从Linker调用parameters。基本上相当于调用

IWannaBeCalled(parameters[0], parameters[1]);

但是参数的数量不能固定:我想完全不更改Linker方法就能添加或删除参数
这是示例代码:

class Program
{
    private void IWannaBeCalled(string arg1, string arg2)
    {
        // Do stuffs using arg1 and arg2
    }

    private void Linker(params string[] parameters)
    {
        // ??
    }

    static void Main()
    {
        Linker("Hello", "world");
    }
}

任何帮助将不胜感激〜


编辑:添加需要执行此操作的真实代码:

private PlanningDatas GetPlanningDatas(string dataSourceFunction, params string[] parameters)
{
    if (!String.IsNullOrEmpty(dataSourceFunction))
    {
        string methodName = dataSourceFunction.Split('.').Last();
        string classString = dataSourceFunction.Substring(0, dataSourceFunction.Length - methodName.Length - 1);

        Type targetType = Type.GetType(classString);
        MethodInfo targetMethod = targetType.GetMethod(methodName);

        return (PlanningDatas)targetMethod.Invoke(null, parameters);
    }
    else
    {
        //return (PlanningDatas)DefaultDataSource( --parameters-- );
    }
}

private PlanningDatas DefaultDataSource(string vehiculeModel)
{
    // Get the Data
}

说明: 此示例来自mvc项目,因此方法名称是通过 ajax调用指定的,因此它必须是字符串。 如果给出了字符串,它将调用该方法,但是dataSourceFunction为null,它将调用默认函数。 所有未注释的代码都是完全正常的

0 个答案:

没有答案