1
私は "voidメソッド(文字列)"署名を持つ第三者代理人を持っています。 問題は、追加の追加情報をMySubscribedMethodに渡したい/必要とすることです(簡単にするためにMyIntArgと言います)。私はサブスクリプション時にこの情報を知っていますが、明らかにMySubscribedMethodパラメーターリストを変更することはできません。C#第三者Delagate署名への引数の追加
ThirdPartyClass.ThirdPartyDelagate += MySubscribedMethod; // Want to provide MyIntArg
public void MySubscribedMethod(string Arg) {} // Would like to receive MyIntArg
誰もこのタイプの問題に対して優雅な回避策を知っていますか?
おかげで、
大変感謝しています。関心のある人のために私はクロージャの良い定義をhttp://www.codethinked.com/c-closures-explainedで見つけました – aidesigner
クロージャの作成時にコピーされたmyIntArgの値はクロージャ(pun)の値です。たとえば、myIntArgがデリゲートが呼び出される前に変更された参照型の場合、元の値または変更された値が返されますか? – aidesigner
変更されたもの。 'MySubscribedMethod'への引数として渡される値は、closureが作成されたときの '元の'値ではなく、そのpoint_の変数_の値です。 – thecoop