0

次のようなカスタム Shape クラスを持つプログラムがあります

class Shape
{
public:
Event<ShapeArgs> shapeBurst;
virtual void onMousePress(); //inside this, shapeBurst event is notifed
};

私のプログラムには Shape クラスのインスタンスが 15 あります。これらすべてのインスタンスのイベントをサブスクライブし、共通のハンドラーを提供する必要があります。ただし、15 クラスすべてからイベントをサブスクライブする方法については、ここで疑問があります。
shapeBurst メソッドにサブスクライブする以下のフォームに各インスタンスを実際に書き留める必要がありますか、それともより良い方法がありますか?

shape.shapeBurst += new ShapeBurstEventHandler(ShapeBurstMethod);
4

1 に答える 1

1

15 個のシェイプ オブジェクトがある場合、15 個の変数の代わりにオブジェクトの配列を使用し、ループを使用してイベントをサブスクライブできます。

for(int i=0; i < shape.Length;i++)
  shape[i].shapeBurst += new ShapeBurstEventHandler(ShapeBurstMethod);
于 2013-01-28T05:07:58.703 に答える