调用由字符串命名的编号方法或方法

时间:2015-04-15 01:08:40

标签: c# string function methods numbered

我有100个方法,如

    public void function1() {}
    public void function2() {}
    ....
    public void function100() {}

问题是如何在不逐一调用这些功能的情况下调用这些功能? 或者如何从字符串中调用函数,如:

    string S = "TheFunction"+x.Tostring()+"()";

2 个答案:

答案 0 :(得分:0)

你的方法是什么类?您可以在类中获得一系列方法,如下所示:

MethodInfo[] methods = typeof(YourClassNameHere).GetMethods();

然后你可以循环并调用:

String baseName = "function";
foreach(var item in methods) {
   //Check name
    if (item.Name.SubString(0, baseName.Length) == baseName) {
       item.Invoke(classInstanceOfYourClass,null);
    }
}

classInstanceOfYourClass是您正在执行此操作的类的对象实例。调用的第二个参数(我将其设置为null)用于将参数传递给方法。如果您传递null,则表示该方法没有参数。

答案 1 :(得分:0)

你的问题的答案是反思。您可以查看此答案Reflection: How to Invoke Method with parameters中的代码。