订阅多个类实例的事件

时间:2013-01-28 05:05:36

标签: c# algorithm events

我有一个带有自定义Shape类的程序,如下所示

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

我的程序中有15个Shape类的实例。我必须订阅所有这些实例的事件并提供一个公共处理程序。但是,我对如何订阅所有15个班级的活动表示怀疑 我是否应该在下面的表单中写下每个实例,并订阅shapeBurst方法,或者有更好的方法吗?

shape.shapeBurst += new ShapeBurstEventHandler(ShapeBurstMethod);

1 个答案:

答案 0 :(得分:1)

如果您有15个形状对象,那么您可以使用对象数组而不是15个变量,并使用循环来订阅事件。

for(int i=0; i < shape.Length;i++)
  shape[i].shapeBurst += new ShapeBurstEventHandler(ShapeBurstMethod);