0

メソッドを渡して保存したい。メソッドが1つのintを取り、voidを返すとしましょう。Action<int>でラップします。

さて、そのメソッドを呼び出す方法はありますが、元のオブジェクトではなく、同じクラスの別のインスタンスで呼び出す方法はありますか?

それ以上具体的にするのは難しいですが、紛らわしい点がないかお尋ねください。もう一度やり直します。

4

2 に答える 2

3

さて、そのメソッドを呼び出す方法はありますが、元のオブジェクトではなく、同じクラスの別のインスタンスで呼び出す方法はありますか?

編集:さて、私の最初の試みを無視します。あなたは別のクラスについて話していると思いました。

実際には、メソッドをAction<object, int>(またはより強く型付けされたバージョン)でラップする必要があるようです。

または、次を使用して新しいデリゲートを作成することもできます。

Action<int> newAction = (Action<int>) Delegate.CreateDelegate(typeof(Action<int>),
                                          newTarget,
                                          oldAction.Method);
于 2012-09-06T09:23:15.687 に答える
2

パラメータタイプを受け取るType.GetMethodオーバーロードを使用できます。これにより、指定されたパラメータタイプで正確なメソッドを取得できます。

于 2012-09-06T09:22:53.203 に答える