私は基本的なタイプの間で適応ジェネリッククラスのAdapterパターンを持っている:イベント+ Adapterパターン
class A<T> { event EventHandler e; }
class Aadapter<T1, T2> : A<T1> { A<T2> a; Aadapter(A<T2> _a) { a = _a; } }
問題は、Aは、イベントが含まれていることです。私は効果的に、アダプタに割り当てられたすべてのイベントハンドラが〜に落ちるようにしたい。
アダプタのイベントハンドラにイベントハンドラを割り当てることはできますが、これは不可能ですか?
ここでのアイデアは、Aはほぼ本当にAですが、それらを適応させる方法が必要です。イベントの仕組みのため、2つのイベントハンドラを手動で追加し、呼び出されたときに他のイベントに「リレー」する以外は、効率的に行う方法がありません。これはかなりかかわらずではないと私は、我々は、A2のイベントを割り当てることができますイベントへのポインタを持っている意味で
class A<T> { event EventHandler e; }
class Aadapter<T1, T2> : A<T1> { event *e; A<T2> a; Aadapter(A<T2> _a) { a = _a; e = a.e; } }
のようなものを持っていることができれば、それは非常に良く思われます。
私は単純な方法があるとは思っていませんが、多分誰かがそれを働かせるように考えているかもしれません。
この場合、このアダプターは汎用クラスをそれ自身に適応させています。クラスのジェネリック型パラメータは、それほど使用されていないという意味でややゆるやかにバインドされています。これは、クラスがジェネリックパラメータとはほとんど無関係であり、アダプタはほとんど必要ないことを意味します。 このような状況では、イベントをアダプタからラップされたオブジェクトに結びつけるのではなく、両方をサブスクライブする方が自然です。 明らかに "ポインタメソッド"はうまくいかず、誰かがより良いやり方を思い出さなければ、私は仕事をする2人から選ぶことに悩まされます。 – Stretto