面向对象只是对于客观世界的一种抽象和描述。因此,面向对象里的概念也是来源于客观的世界,故对于c#中的事件的思考也同样可以从客观世界来思考。(且中国人习惯于类比的思维)
对于一个事件,至少要有两个主体,一个是事件的发送者(sender),一个是事件的接收者。在进一步的思考事件前,先来看看一个客观的例子。一个城市有一个防汛指挥部,在附近驻扎着一个部队,主要负责防汛工作。如果有一天不幸发生了洪灾,这就是一个事件,对于指挥部来说,它就是事件的发送者,而部队则是事件的接受者,在洪灾这个事件发生之后,做为事件的发送者,指挥部需要把这个事件发给接受者,他们先前建立的职责就是一种委托,部队则需要通过先前的约定(即delegate)来采取相应的措施,比如马上出动部队修理堤坝,或是疏散群众,这些行为(即是method)都是事件的接受者要执行的。
这个客观的实例就能够很好的解释事件在客观世界的模型。其实现实世界中对于这些概念都有很好的模型,既然中国人擅长于类比思考模式,那么我们在学习中也不妨灵活的运用这种思维模式。