0

我想在以下行中传递一个字符串参数(名称)。我怎么做?

string name = "First Name";
//How do I pass "First Name" in the function?
tempControl.GetType().GetMethod("LoadAnswers").Invoke(tempControl, null);
4

1 回答 1

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);
于 2013-07-12T18:39:34.470 回答