-1

リフレクションを使用して関数を実行したい (名前は GetAverage で、パラメーターなし) そして、この関数は Gold という名前のクラスにあります。

私はこのコードを使用します:

string MyFunction = "GetAverages";
Type type = typeof(MyGoldClass);
MethodInfo info = type.GetMethod(MyFunction);
int res = (int)info.Invoke(type,null);
res += 3;

しかし、それは機能せず、それが何であるかわからないインスタンスエラーを作成します。注意 MyFunction は、ゴールド クラスのパブリック関数です。そして、これを他の C# ページで呼び出して実行したいです。

4

4 に答える 4

2

あなたの方法がstaticこれを試してみてください

int res = (int)info.Invoke(null, null);

instanceメソッドの場合はこれを試してください

int res = (int)info.Invoke(instanceOfMyGoldClass, null);

の有効なインスタンスはどこinstanceOfMyGoldClassですかMyGoldClass

詳細については、 msdnを参照してください

これが役に立たない場合は、メソッド定義/署名を投稿してください。それに応じて回答を更新します。

于 2013-09-13T17:50:30.273 に答える
1
string MyFunction = "GetAverages";
MethodInfo mi;

mi = typeof(MyGoldClass).GetMethod(MyFunction);
int res = (int)mi.Invoke(new MyGoldClass(), null);
于 2013-09-13T17:50:35.137 に答える