メソッドを渡して保存したい。メソッドが1つのintを取り、voidを返すとしましょう。Action<int>でラップします。
さて、そのメソッドを呼び出す方法はありますが、元のオブジェクトではなく、同じクラスの別のインスタンスで呼び出す方法はありますか?
それ以上具体的にするのは難しいですが、紛らわしい点がないかお尋ねください。もう一度やり直します。
さて、そのメソッドを呼び出す方法はありますが、元のオブジェクトではなく、同じクラスの別のインスタンスで呼び出す方法はありますか?
編集:さて、私の最初の試みを無視します。あなたは別のクラスについて話していると思いました。
実際には、メソッドをAction<object, int>
(またはより強く型付けされたバージョン)でラップする必要があるようです。
または、次を使用して新しいデリゲートを作成することもできます。
Action<int> newAction = (Action<int>) Delegate.CreateDelegate(typeof(Action<int>),
newTarget,
oldAction.Method);
パラメータタイプを受け取るType.GetMethodオーバーロードを使用できます。これにより、指定されたパラメータタイプで正確なメソッドを取得できます。