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