我有 100 种方法
public void function1() {}
public void function2() {}
....
public void function100() {}
问题是我如何调用这些函数而不一一调用它们?或者我如何从字符串中调用函数,例如:
string S = "TheFunction"+x.Tostring()+"()";
你的方法在什么类?您可以像这样获取类中的方法数组:
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
是您正在执行此操作的类的对象实例。invoke 的第二个参数(我将其设置为null
)用于将参数传递给方法。如果您通过null
,则表示该方法没有参数。
你的问题的答案是反射。您可以查看此答案Reflection: How to Invoke Method with parameters中的代码。