我不明白为什么我们在定义事件时需要“event”关键字,而我们只需使用委托就可以在不使用“event”关键字的情况下做同样的事情。为什么我们在定义事件时需要“事件”关键字?
例如
public delegate void CustomEventHandler(int a, string b);
public event CustomEventHandler customEvent;
customEvent += new CustomEventHandler(customEventHandler);
customEvent(1,"a"); // Raising the event
在这里,如果我从第二行删除“事件”的关键字,那么我也可以通过调用委托引发事件。任何人都可以告诉我为什么这个事件关键字需要?
确定如果您没有使用event关键字任何可以使用类对象访问该事件的人将其设置为NULL,如objClass.SelectedIndexChanged = null。这会使您的底层代码崩溃。事件关键字强制用户使用+ =分配与委托类似的内容。 – 2013-07-05 07:57:24