我想在下一行中传递一个字符串参数(name)。我该怎么做?
string name = "First Name";
//How do I pass "First Name" in the function?
tempControl.GetType().GetMethod("LoadAnswers").Invoke(tempControl, null);
答案 0 :(得分:1)
您需要将Invoke
方法传递给参数的对象数组:
tempControl.GetType().GetMethod("LoadAnswers").Invoke(tempControl, new object[] { name });
但是......我很困惑为什么你不只是在tempControl
对象上调用方法:
tempControl.LoadAnswers(name);
...
修改
正如@Jason P在评论中提到的,如果你将控件转换为正确的类型(为了参数,MyUserControl
),你将能够在不使用反射的情况下访问该方法。这将是一个更具可读性和高性能的解决方案:
var myControl = (MyUserControl)tempControl;
myControl.LoadAnswers(name);