我有100个方法,如
public void function1() {}
public void function2() {}
....
public void function100() {}
问题是如何在不逐一调用这些功能的情况下调用这些功能? 或者如何从字符串中调用函数,如:
string S = "TheFunction"+x.Tostring()+"()";
答案 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中的代码。