我有一个带有自定义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);
答案 0 :(得分:1)
如果您有15个形状对象,那么您可以使用对象数组而不是15个变量,并使用循环来订阅事件。
for(int i=0; i < shape.Length;i++)
shape[i].shapeBurst += new ShapeBurstEventHandler(ShapeBurstMethod);