如何在控件中传递参数

本文关键字:参数 控件 | 更新日期: 2023-09-27 18:22:12

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

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