15

パラメータとして任意のメソッド (パラメータに関係なく) を取るメソッドを作成することは可能ですか? メソッドには、paramsパラメーター メソッドのすべてのパラメーターを受け取るパラメーターも含まれます。

だから基本的に私が欲しいのは次のようなものです:

public void CallTheMethod(Action<int> theMethod, params object[] parameters)

しかし、intを取るメソッドだけでなく、あらゆるメソッドに対して.

このようなことは可能ですか?

ありがとう

4

3 に答える 3

3

はい。DynamicInvoke を使用してメソッドを呼び出すことができます。

Action<int> method1 = i => { };
Func<bool, string> method2 = b => "Hello";

int arg1 = 3;
bool arg2 = true;
//return type is void, so result = null;
object result = method1.DynamicInvoke(arg1);

//result now becomes "Hello";
result = method2.DynamicInvoke(arg2);

これを行う方法は次のようになります。

object InvokeMyMethod(Delegate method, params object[] args)
{
    return method.DynamicInvoke(args);
}
于 2013-08-20T15:02:05.057 に答える