睡前故事之.NET事件

声明:
此文适合初涉.NET事件机制的朋友。为了降低理解难度,损失了一些术语的精确性,望谅解。
 
从前有个叫做道奈特的王子(和《流星花园》中的道名寺无任何关系),他聪明勇敢善良,但是有个致命的缺点就是――帅!帅的一塌糊涂。为了帮他改正缺点,邻国的公主们都愿意用自己的一生去帮助他(太感人了),什么大丸国公主、女人国公主、莎拉公主、茜茜公主、白雪公主、芙蓉姐姐……(靠,她怎么也来了?)。这么大的事情,道奈特当然要精挑细选一下,于是向全世界发布招聘信息――招老婆一名,未婚女性。
 
道奈特的面试方法很简单,就是海选,择优录取。在某一天,让所有的应聘者来宫中试讲。
注解:这就是传统的函数调用。在函数中将所有步骤都写清楚,挨个执行。
可是这天,发生一件事情:白雪公主病倒了(没事吃那么多苹果干嘛?苹果里有苹果酸,对牙齿不好……)。白雪公主是竞标大热门,据说他们国家的人不用干活,鱼和大雁多得吃不完,还可以出口创汇。道奈特可不想就这么轻易的放弃,可是又不知道今天白雪公主能不能来,只能宣布面试暂停。
注解:这就是传统函数调用的缺点,人必须来齐,否则执行起来就有异常。
出院后,道奈特吸取了教训(什么?为什么住院了?被放鸽子的公主们打的呗)。
注解:异常的后果往往很严重。
他从微软幼儿园引进了先进的管理理念――排队!并由微软幼儿园的最有经验的学童Delegate指导实施。下面就是道奈特的一天:
应聘的公主们早早的来到道奈特家的院子里,在Delegate那里领到号码牌。
注解:Delegate就是委托类型。所有方法必须与委托类型兼容。谁是方法,公主们就是方法,就是我们每天写的Button1_Click。不跟委托搞好关系,无论方法多么强大都得不到召见。
8:00 面试开始。道奈特示意Delegate可以开始。
注解:事件发生了,叫做OnInterView,事件的实现是需要委托来帮忙的。
Delegate喊:“1号!”。1号大丸国公主宽宽地进入房间(本句无错别字),开始show她的舞姿,波涛汹涌~~
接下来就是2号,3号,4号……
注解:一个事件可以挂接多个响应方法。
可是白雪公主依然还是没有到场,如果所有公主面试完了她还是没有来的话,只能当弃权了。道奈特不想再次住院了。
为了情节紧张一点,就在送走最后一个面试的公主起身离去的时候,白雪公主签到了,并领取了号码牌。
注解:这就是迟绑定,或者叫做运行时绑定。与此相对的就是前面的公主都是在事件发生前就绑定好了。
白雪公主果然不同反响,一曲肝肠断,天涯何处觅知音。
从此,王子公主过上了幸福的生活。
晚安,各位。
 
 
 
 

你可能感兴趣的:(.net,职场,事件,休闲)