如何在控件中传递参数?

时间:2013-07-12 18:36:17

标签: c# asp.net .net controls

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

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

1 个答案:

答案 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);