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 に答える