<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_ThinkStudio</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/5978/rss</id><updated>2011-07-20T10:13:03Z</updated><author><name>Netprawn</name><uri>http://www.cnblogs.com/guodapeng/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodapeng/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/5978/rss"/><entry><id>http://www.cnblogs.com/guodapeng/archive/2011/07/20/2111971.html</id><title type="text">为什么总是磨磨蹭蹭</title><summary type="text">拖延这一现象在生活以及个人身上无处不在，拖延看来并不是一件好事，可是为什么它会有这么大的威力，让很多人很多时候都乖乖地听命于它，到底哪里出了问题？</summary><published>2011-07-20T10:12:00Z</published><updated>2011-07-20T10:12:00Z</updated><author><name>Netprawn</name><uri>http://www.cnblogs.com/guodapeng/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodapeng/archive/2011/07/20/2111971.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodapeng/archive/2011/07/20/2111971.html"/><content type="html">&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;拖延这一现象在生活以及个人身上无处不在，拖延看来并不是一件好事，可是为什么它会有这么大的威力，让很多人很多时候都乖乖地听命于它，到底哪里出了问题&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;？&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: center" align="center"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; font-size: 16pt; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;拖沓成性有心因&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 252pt; mso-char-indent-count: 24.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;文&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;/&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;阿&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;蒂&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;你是否喜欢把事情拖到最后一刻才做？也曾因此受挫而暗下决心不再这样，可当下一个任务来临时，又会习惯性地一拖再拖？你是否遇上一些做事拖延的同事，因而饱尝焦急等待的滋味呢？&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;职场上，每项任务都有个最终期限，而对那些时常混迹在&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;deadline&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;（死线）边缘欲仙欲死的超级名&amp;#8220;磨&amp;#8221;来说，最后期限的意义就在于&amp;#8220;在最后期限之前，可以无限制地拖延&amp;#8221;。工作拖延病，俨然已成为职场工作激情的头号杀手。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21.1pt; mso-char-indent-count: 2.0"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;拖拉是一种&amp;#8220;病&amp;#8221;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21.1pt; mso-char-indent-count: 2.0"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;人物：曼青&lt;/span&gt; &lt;span lang="EN-US" xml:lang="EN-US"&gt;25&lt;/span&gt;&lt;/strong&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;岁，公司文员&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;曼青是某大型企业的办公室文员，她总是习惯把工作拖到最后一刻去完成。周一，集团董事会召开会议，曼青负责整理会议记录，并要负责出一份简报摘要，部门领导要求她周五交上来。开完会后，曼青随手把会议记录往抽屉里一扔，就完全不记得了。周四下午下班曼青才想起明天要交会议简报了，决定晚上回家搞掂它。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;晚上回到家，曼青打开电脑，刚摆出一副要动笔的架势，突然想起每晚必看的电视剧今天大结局，看完再写吧。等她看完电视剧坐回电脑前，已是晚上&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;10&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;点多了，可写材料前还有大把&amp;#8220;任务&amp;#8221;等着她去完成：去开心网偷个菜、上&amp;#8220;围脖&amp;#8221;晃一圈；吃点儿零食水果&amp;#8230;&amp;#8230;当她真正摒除杂念决心干活时，已是凌晨时分。此时，她才慌了神，于是，用半个小时整理思路，再集中精神一个小时整理好摘要，两千字的简报很快就做出来了&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;&amp;#8220;我也知道这样不好。&amp;#8221;曼青说，&amp;#8220;我真希望有人能时常催促我，这样干活就快多了&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;！&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21.1pt; mso-char-indent-count: 2.0"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;点评：&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;拖拉会威胁到人们的健康。对拖拉者而言，拖拉不只是精力和时间的大量耗费，还危及到他们的健康。调查显示，拖拉情况严重的人通常喜欢饮酒、吸烟，并患有失眠症，肠胃也不好。当身体状况不佳时，他们还会拖延去医院就诊的时间。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21.1pt; mso-char-indent-count: 2.0"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;节约的时间是自己的&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21.1pt; mso-char-indent-count: 2.0"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;人物：吴军&lt;/span&gt; &lt;span lang="EN-US" xml:lang="EN-US"&gt;32&lt;/span&gt;&lt;/strong&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;岁，外企职员&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;我们公司实行的是弹性工作制，干完活就能走人，所以，在我有限的上班时间里，用&amp;#8220;埋头苦干&amp;#8221;来形容绝对不过分。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;我的工作状态可以这样描述：敲击键盘运指如飞，虽然用的是拼音输入法，但每分钟输入的字数已经达到了五笔输入法的水平；打电话干脆利落，常常把听筒夹在脖子边，一边打电话一边翻阅资料或者敲击键盘；从不参与无聊的八卦，不在蜚短流长里浪费唾沫和精力；从不看无关的网页，不让海量信息把自己淹没；非常忙的时候，甚至不喝水，为的是不用老去厕所报到。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;正是因为修炼得当，大家公认我是办公室里效率最高的员工，交货质量也有稳定的高水准。所以有什么紧急的任务，大家总是第一个想到我。对此，我暗地里也有点儿小得意，特别是每每看到少数磨洋工的同事，真是十分的&amp;#8220;怒其不争，哀其不幸&amp;#8221;&amp;#8212;&amp;#8212;看上去天天加班很辛苦似的，其实完成的工作量却并不大，时间都是白白浪费在聊天、上网、打游戏、吃零食上了。还好我们的工作都是彼此独立的，他们的拖拉不会影响到我的工作进度。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21.1pt; mso-char-indent-count: 2.0"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;点评：&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;拖拉的人难以被委以重任。&amp;#8220;车到山前必有路&amp;#8221;、&amp;#8220;船到桥头自然直&amp;#8221;，我们经常会听到这样的口头禅。说这类话的，多半是些慢性子的人，调查显示，这样的人难以被委以重任。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21.1pt; mso-char-indent-count: 2.0"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;分析：&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;5&lt;/span&gt;&lt;/strong&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;点造成超级名&amp;#8220;磨&amp;#8221;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;1.&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;压力过大无法疏解&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;工作越多、压力越大越容易拖拉。还有人深信，他们在重压之下将工作得更为出色。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;2.&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;害怕失败&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;拖沓者害怕失败。所以，他们宁愿被别人认为是没有下足够的气力，而不愿意被人认为是没有足够的能力。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;3.&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;完美主义&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;完美主义者太在意别人的看法了，他希望讨好别人。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;4.&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;不懂自我控制&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;比如，在写年度计划的时候，停下来吃点儿夜宵，然后觉得冰箱有点儿脏，想清理一下，最后把整个厨房打扫了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;5.&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;寻求刺激&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;有些人拖沓是喜欢刺激，他们总是气喘吁吁地跑到汽车站，在末班车关门的前一秒冲进车厢，这样能给他们带来另类满足感。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21.1pt; mso-char-indent-count: 2.0"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;献计：让名&amp;#8220;磨&amp;#8221;改行&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;1.&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;分清主次，学会运用二八法则&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;准备一个小本子，坚持每天晚上写下第二天必做的至少&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;5&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;件事，区分优先级别，然后第二天一定要从最重要或者最难、最有压力的工作或者事情开始做起，依次类推。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;2.&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;将工作分成若干&amp;#8220;段落&amp;#8221;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;导致工作时拖拉的部分原因在于，我们总会下意识地认为，这个活儿实在太大了，已经到了难以完成的地步。那就不妨将它切割成若干个小&amp;#8220;段落&amp;#8221;，每次只专注于完成其中一部分。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;3.&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;改变工作环境&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;仔细看看你的书桌和办公室吧，它们究竟是令你工作欲望倍增，还是令你昏昏欲睡？如果是后者的话，那就有必要改变一下工作环境了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;4.&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;与能够激发行动欲望的人待在一起&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;仔细分析你的家人、朋友或同事中，到底哪些人能使你工作热情倍增，然后有意识地增加与他们相处的机会，用不了多久，你就可以汲取他们的动力与精神了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21.1pt; mso-char-indent-count: 2.0"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;链&lt;/span&gt;&lt;/strong&gt; &lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;接&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21.1pt; mso-char-indent-count: 2.0"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;专家提点：不做名&amp;#8220;磨&amp;#8221;，要保持开放的心态&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;&amp;#8220;心病还须心药医&amp;#8221;，对拖延症患者，专家们建议，因为造成拖延症的原因多种多样，要克服它首先要了解问题的根源，然后以平和的心态慢慢克服。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;对于自信不足而导致的拖延症，我们可以为自己设定一个操作性强的、循序渐进式的工作方式。工作的自我暗示不是&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;&amp;#8220;我打算要写那份方案&amp;#8221;，而是具体为&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;&amp;#8220;我今晚将花半小时设计大纲，明天花半小时寻找资料，再接下来一天，我将根据那些资料花两个小时把方案写出来。&amp;#8221;一步一步，分阶段有计划地完成自己的任务，从每一小步中体会完成的乐趣，懂得适当地奖励自己，自然能形成自我实现的满足感和成就感。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;当发现自己在找借口来拖延某项工作时，你就要考虑是否是因为自己对工作本身或工作环境的态度出了问题。如果你在这方面有任何质疑或者不满，便应该以正面积极的态度与上司或同事沟通，一起解决问题。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;另外，可以尝试加入一些互联网上的&amp;#8220;抵抗拖延症的小团体&amp;#8221;，通过互相的鼓励、支持以及方法的互用来推动自己心理上的坚持和忍耐。如果需要进一步地辅导，寻求心理辅导师的帮助将是一个比较有效的办法。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times new roman'; mso-hansi-font-family: 'Times new roman'"&gt;（转载自青年文摘&lt;a href="http://blog.sina.com.cn/s/blog_4b4efaf901017oem.html"&gt;http://blog.sina.com.cn/s/blog_4b4efaf901017oem.html&lt;/a&gt;）&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guodapeng/aggbug/2111971.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodapeng/archive/2011/07/20/2111971.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodapeng/archive/2011/07/15/2107086.html</id><title type="text">奇迹在坚持中</title><summary type="text">有一句名言是这样说的：“要在这个世界上获得成功，就必须坚持到底，剑至死都不能离手。”其实任何人成功之前，都会遇到许多的失意，甚至难以计数的失败。你选择了放弃，无疑就放弃了一个成功的机会，因为轰轰烈烈的成功之前的失败，往往离成功只有一步之遥。自古以来，那些所谓的英雄，并不比普通人更有运气，只是比普通人更有锲而不舍、坚持到最后的勇气罢了。</summary><published>2011-07-15T02:20:00Z</published><updated>2011-07-15T02:20:00Z</updated><author><name>Netprawn</name><uri>http://www.cnblogs.com/guodapeng/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodapeng/archive/2011/07/15/2107086.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodapeng/archive/2011/07/15/2107086.html"/><content type="html">&lt;div &gt;&lt;span style="font-family: SimSun; font-size: 14px"&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 14px"&gt;&lt;span style="font-family: SimSun; font-size: 14px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这是发生在我大学期间的一件事，至今犹记在心。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 14px"&gt;&lt;span style="font-family: SimSun; font-size: 14px"&gt;　　公共课&amp;#8220;社会学&amp;#8221;的老教授给我们出了这样一道题目：如果一件事的成功率是1%，那么反复尝试100次，至少成功1次的概率大约是多少？备选答案有4个：10%、23%、38%、63%。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 14px"&gt;&lt;span style="font-family: SimSun; font-size: 14px"&gt;　　经过十几分钟的热烈讨论，大部分人都选了10%，少数人选了23%，极个别人选了38%，而最高的概率63%却被冷落，无人问津。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 14px"&gt;&lt;span style="font-family: SimSun; font-size: 14px"&gt;　　老教授没作任何评价，沉默片刻后，微笑着公布了正确答案：如果成功率是1%，意味着失败率是99%。按照反复尝试100次来计算，那失败率就是99%的100次方，约等于37%，最后我们的成功率应该是100%减去37%，即63%。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 14px"&gt;&lt;span style="font-family: SimSun; font-size: 14px"&gt;　　全班哗然，几乎震惊。一件事倘若反复尝试，它的成功率竟然由1%奇迹般地上升到不可思议的63%。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 14px"&gt;&lt;span style="font-family: SimSun; font-size: 14px"&gt;　　有一句名言是这样说的：&amp;#8220;要在这个世界上获得成功，就必须坚持到底，剑至死都不能离手。&amp;#8221;其实任何人成功之前，都会遇到许多的失意，甚至难以计数的失败。你选择了放弃，无疑就放弃了一个成功的机会，因为轰轰烈烈的成功之前的失败，往往离成功只有一步之遥。自古以来，那些所谓的英雄，并不比普通人更有运气，只是比普通人更有锲而不舍、坚持到最后的勇气罢了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 14px"&gt;&lt;span style="font-family: SimSun; font-size: 14px"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;div &gt;来源: 读者2011年第14期&amp;nbsp;&amp;nbsp;曹卫华&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/guodapeng/aggbug/2107086.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodapeng/archive/2011/07/15/2107086.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodapeng/archive/2011/02/02/1948833.html</id><title type="text">2011 春节晚会节目单</title><summary type="text">央视春晚节目单最新彩排（02月01日 23:28更新）总导演：陈临春 马东 柳钢主持人：周涛 李咏 朱军 董卿 张泽群 朱迅20:00 1、开场歌舞《回家过年》：董洁、韩庚、殷桃、周冬雨、窦骁主持人大拜年：周涛 李咏 朱军 董卿 张泽群 朱迅20:07 2、歌曲《天蓝蓝》：演唱：宋祖英 表演：贵州省东南州佤族大歌队台上串联：周涛 李咏 朱军 董卿20:11 3、群口相声《专家指导》：姜昆、戴志诚、郑健、周炜、李伟健台上串联：朱军 闫肃20:24 4、小品《午夜电话亭》：李小冉、邵峰主持人串联：董卿20:36 5、五大民族歌舞《幸福大家庭》蒙古族《吉祥颂》 表演：安达组合、内蒙古民族歌舞剧院回族</summary><published>2011-02-02T03:48:00Z</published><updated>2011-02-02T03:48:00Z</updated><author><name>Netprawn</name><uri>http://www.cnblogs.com/guodapeng/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodapeng/archive/2011/02/02/1948833.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodapeng/archive/2011/02/02/1948833.html"/><content type="html">&lt;p&gt;央视春晚节目单最新彩排（02月01日 23:28更新）总导演：陈临春 马东 柳钢&lt;br /&gt;主持人：周涛 李咏 朱军 董卿 张泽群 朱迅&lt;br /&gt;20:00 1、开场歌舞《回家过年》：董洁、韩庚、殷桃、周冬雨、窦骁&lt;br /&gt;主持人大拜年：周涛 李咏 朱军 董卿 张泽群 朱迅&lt;br /&gt;20:07 2、歌曲《天蓝蓝》：演唱：宋祖英 表演：贵州省东南州佤族大歌队&lt;br /&gt;台上串联：周涛 李咏 朱军 董卿&lt;br /&gt;20:11 3、群口相声《专家指导》：姜昆、戴志诚、郑健、周炜、李伟健&lt;br /&gt;台上串联：朱军 闫肃&lt;br /&gt;20:24 4、小品《午夜电话亭》：李小冉、邵峰&lt;br /&gt;主持人串联：董卿&lt;br /&gt;20:36 5、五大民族歌舞《幸福大家庭》&lt;br /&gt;蒙古族《吉祥颂》 表演：安达组合、内蒙古民族歌舞剧院&lt;br /&gt;回族《数花》 表演：宁夏歌舞团&lt;br /&gt;壮族《美丽的姑娘》 表演：广西艺术学院舞蹈学院&lt;br /&gt;维族《刀郎麦西来甫》 表演：新疆艺术剧院歌舞团&lt;br /&gt;藏族《欢歌起舞》 表演：西藏山南地区扎囊县农牧民演员、西藏日喀则地区民族艺术团&lt;br /&gt;现场播报（一）：张泽群、朱迅&lt;br /&gt;20:51 6、小品《美好时代》：黄海波、海清&lt;br /&gt;现场互动：周涛、赵书兵&lt;br /&gt;21:04 7、杂技《晃管》：中国铁路文工团杂技团&lt;br /&gt;主持人串联：周涛&lt;br /&gt;21:09 8、儿童歌舞剧《爱我就抱抱我》：演唱：林妙可、仔仔、豆豆 舞蹈：小宝&lt;br /&gt;现场互动：李咏 和 小宝&lt;br /&gt;21:14 9、小品《&amp;#8220;聪明&amp;#8221;丈夫》：黄宏、陈数、孙涛、凯丽&lt;br /&gt;现场播报（二）：张泽群、朱迅&lt;br /&gt;21:32 10、魔术《年年有鱼》：傅琰东、董卿&lt;br /&gt;21:41 11、&amp;#8220;我要上春晚&amp;#8221;大板块&lt;br /&gt;歌曲《想家》：任月丽(西单女孩)&lt;br /&gt;歌曲《春天里》：旭日阳刚&lt;br /&gt;现场互动：董卿 和 6位农民工&lt;br /&gt;舞蹈《我们工人有力量》：深圳民工歌舞团、塔沟武校&lt;br /&gt;21:50 12、杂技相声《独家录制》：李菁、何云伟&lt;br /&gt;22:00 13、歌曲《兰亭序》：周杰伦、林志玲&lt;br /&gt;现场互动：董卿和林志玲&lt;br /&gt;22:04 14、魔术《穿越》：丁建忠、林志玲&lt;br /&gt;现场互动：李咏 率领四大美女 李小冉、容祖儿、林志玲 和 余翠芝&lt;br /&gt;22:21 15、相声剧《还钱》：冯巩、牛莉、小宋佳、刘金山&lt;br /&gt;现场播报 （三）：张泽群、朱迅&lt;br /&gt;22:35 16、戏曲《星火相传梨园美》：于魁智、李胜素、孟广禄、袁慧琴、何赛飞、张欣怡（豫剧3岁）等&lt;br /&gt;现场互动：周涛 和 纪连海&lt;br /&gt;22:43 17、相声《四海之内皆兄弟》：大山、艾迪、夏天、李天翼、梅友、茹丝（孔子学院5位学员）&lt;br /&gt;22:48 18、小品《新房》：蔡明、刘威、宋阳、徐囡楠&lt;br /&gt;现场互动：董卿 和 道德模范&lt;br /&gt;23:03 19、杂技《高车踢碗》：沈阳军区前进杂技团&lt;br /&gt;现场播报 （四）：张泽群、朱迅&lt;br /&gt;23:11 20、小品《同桌的你》：赵本山、王小利、李琳、小沈阳&lt;br /&gt;23:33 21、混搭《非常1加1》：李咏、金琳琳、邓雯心-&lt;br /&gt;23:41 22、歌曲《众里寻你》：韩红&lt;br /&gt;23:45 23、歌曲《旗帜更鲜艳》：谭晶&lt;br /&gt;&amp;#8220;零点仪式&amp;#8221;主持人朱军、周涛、李咏、董卿、张泽群、朱迅集体出场&lt;br /&gt;00:01 24、歌舞《幸福赞歌》：张也、阎维文&lt;br /&gt;00:05 25、《今夜北方飘着雪》：蔡国庆、江涛、吕继宏、佟铁鑫&lt;br /&gt;00:09 26、歌舞《因为有你》：祖海、汤灿、王丽达、常思思&lt;br /&gt;00:13 27、歌曲《新民乐组合》&lt;br /&gt;《康定情歌》演唱：容祖儿(香港地区)、古巨基(香港地区)&lt;br /&gt;《青春舞曲》演唱：玖月奇迹&lt;br /&gt;《阿诗玛》《赶圩归来阿哩哩》演唱：郑钧、吴彤&lt;br /&gt;00:21 28、歌舞新势力《爱爱爱》《向往》《收藏》《我是火焰》 ：方大同、萧敬腾、李健&lt;br /&gt;00:27 29、歌曲《难忘今宵》：李谷一、王莉、张大伟、张妮、薛皓垠&lt;br /&gt;晚会总谢幕：六位主持人及演员亮相&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guodapeng/aggbug/1948833.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodapeng/archive/2011/02/02/1948833.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodapeng/archive/2010/10/04/1842107.html</id><title type="text">程序员：下一次面试前你需要准备的五个基本步骤</title><summary type="text">一、开门见山一般来说，你（求职者）在面试中会花很多时间谈论以前的经历。如果你还没有想出你的最具代表性的经历/案例，那么你现在是时候该做了。下面有张问题 表，虽然很多问题看似比较低级，但相信我，看完这些问题后，你应当反思自己。即便面试时没有碰到类似这张列表上的问题，你在面试也可以用上已准备好的答 案。1. 说说你自己吧2. 你的短期目标是什么？你2到5年内的目标是什么？3. 你的愿景/使命是什么？4...</summary><published>2010-10-04T12:02:00Z</published><updated>2010-10-04T12:02:00Z</updated><author><name>Netprawn</name><uri>http://www.cnblogs.com/guodapeng/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodapeng/archive/2010/10/04/1842107.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodapeng/archive/2010/10/04/1842107.html"/><content type="html">&lt;p&gt;&lt;strong&gt;一、开门见山&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;一般来说，你（求职者）在面试中会花很多时间谈论以前的经历。如果你还没有想出你的最具代表性的经历/案例，那么你现在是时候该做了。下面有张问题 表，虽然很多问题看似比较低级，但相信我，看完这些问题后，你应当反思自己。即便面试时没有碰到类似这张列表上的问题，你在面试也可以用上已准备好的答 案。&lt;br /&gt;&#xD;
&lt;ul&gt;&lt;li&gt;1. 说说你自己吧&lt;/li&gt;&lt;li&gt;2. 你的短期目标是什么？你2到5年内的目标是什么？&lt;/li&gt;&lt;li&gt;3. 你的愿景/使命是什么？&lt;/li&gt;&lt;li&gt;4. 你想从这个岗位中学到什么？&lt;/li&gt;&lt;li&gt;5. 你为什么认为自己能胜任这个岗位？&lt;/li&gt;&lt;li&gt;6. 除了这个岗位，你还在找哪些岗位？&lt;/li&gt;&lt;li&gt;7. 你有什么样的管理或领导经验？&lt;/li&gt;&lt;li&gt;8. 你有什么样的团队工作经验？&lt;/li&gt;&lt;li&gt;9. 你最满意/不满意的经历是什么？&lt;/li&gt;&lt;li&gt;10. 你的强项/弱项是什么？&lt;/li&gt;&lt;li&gt;11. 你最擅长处理哪一类的问题？&lt;/li&gt;&lt;li&gt;12. 你是如何减压？如何平衡工作和生活？&lt;/li&gt;&lt;li&gt;13. 如果他人提出的要求有违你的道德准则或商业道德，你怎么处理？&lt;/li&gt;&lt;li&gt;14. 你上次试图向他人出售点子有什么样的结果？&lt;/li&gt;&lt;li&gt;15. 你为什么要应聘我们公司？你对我们公司了解多少？&lt;/li&gt;&lt;li&gt;16. 你认为加入我们公司有什么样的利弊？&lt;/li&gt;&lt;li&gt;17. 你最看重雇主的哪一方面？&lt;/li&gt;&lt;li&gt;18. 你过去遇到的主管有哪些共同点？&lt;/li&gt;&lt;li&gt;19. 如果要在竞争中保持领先，你认为我们公司的员工最需要哪些品质？&lt;/li&gt;&lt;li&gt;20. 你最喜欢/不喜欢什么课程？为什么？&lt;/li&gt;&lt;li&gt;21. 你的兼职/暑假/实习经历中有什么收获？&lt;/li&gt;&lt;li&gt;22. 你有什么样的深造计划？&lt;/li&gt;&lt;li&gt;23. 为什么你的成绩这么低？&lt;/li&gt;&lt;li&gt;24. 你是如何打发空余时间的？&lt;/li&gt;&lt;li&gt;25. 如果我让你的朋友们描述你，你觉得他们会怎么说呢？&lt;/li&gt;&lt;li&gt;26. 什么事最让你沮丧？&lt;/li&gt;&lt;li&gt;27. 你上次在工作中遇到恼火的事是什么时候？结果如何？&lt;/li&gt;&lt;li&gt;28. 你如何提高你的整体效益？&lt;/li&gt;&lt;li&gt;29. 去年你遇到最艰难的决定是什么？为什么它很艰难？&lt;/li&gt;&lt;li&gt;30. 你为什么到现在还没有找到工作？&lt;/li&gt;&lt;li&gt;31. 你在哪些方面没有任何经验？比如：销售、筹款或者簿记。&lt;/li&gt;&lt;li&gt;32. 我们为什么要雇用你？&lt;/li&gt;&lt;li&gt;&amp;nbsp; &lt;/li&gt;&lt;/ul&gt;上面这个列表中的问题需要深思和反省才能回答，所以在下一次面试之前很有必要提前想一想。有些问题可以有相同的答案。如果问题答案需要讲述一段故事/经历，你可以按如下方式来做：&lt;br /&gt;&#xD;
&lt;ul&gt;&lt;li&gt;1. 20秒描述情况。&amp;#8220;代码出问题了，整个团队必须找出原因。&amp;#8221;&lt;/li&gt;&lt;li&gt;2. 30秒描述你做了什么。&amp;#8220;我认为是内存溢出，我注意到AbstractMemberCreationFactory本应该只有一个实例，但它有很多实例&amp;#8221;。&lt;/li&gt;&lt;li&gt;3. 20秒描述结果。&amp;#8220;我用一行代码解决溢出问题，我们的产品如期上线。后来，我都会先测试确保不会再有类似问题&amp;#8221;。 &lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;在每次面试前，浏览整个列表并大声练习你的回答。&lt;/strong&gt;这样做让你在面试中更加轻松自如，你就比其他应聘者有更多的优势。比如，当在回答问题时，其他应聘者可能会先看着天花板说&amp;#8220;嗯&amp;#8221;，然后开始回忆过去5年中发生的一切。而你则可以微笑地看着面试官的眼睛，再陈述你的答案。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;二、事先练习最常用的编程算法，以建立自信&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;钢琴家在达到下一级水平之前，他们必须先学习一套短曲。这些短曲虽然不曾在聚会上弹奏，但他们要练习特定的部分，比如右手小指和切分音。同理，尽管有些算法你或许没有在你的代码中用过，但它们经常在编程面试中出现。比如：&lt;br /&gt;&#xD;
&lt;ul&gt;&lt;li&gt;1. 反转单链表；&lt;/li&gt;&lt;li&gt;2. 反转字符串或反转段落中的单词顺序；&lt;/li&gt;&lt;li&gt;3. 利用星号输出画一个任意大小的圆；&lt;/li&gt;&lt;li&gt;4. 整数转换为字符串，数字型的字符串转换为整数；&lt;/li&gt;&lt;li&gt;5. 写一个函数，返回任意整数对应二进制形式中的&amp;#8220;1&amp;#8221;的个数；&lt;/li&gt;&lt;li&gt;6. 写一个函数，输出字符串中字符的所有排序。（比如：abc acb bac bca cab cba） &lt;/li&gt;&lt;/ul&gt;一般来说，可以先不考虑算法的运行时间，都是先用最简单有效算法。然后再尽量减少运行时间。能让算法正常跑起来，总比你花大量时间想一步到位要好。（一步到位的想法虽好，但大部分时候都是事倍功半。）&lt;br /&gt;&lt;br /&gt;提示：&lt;strong&gt;做练习时，别自欺欺人看答案。&lt;/strong&gt;&lt;br /&gt;我第一次写&amp;#8220;反转单链表&amp;#8221;算法是利用课间时间。我并不急，从运行时间较长的方案到优化的方案，我用了半个小时。在验证算法正确无误后，我非常高兴！我知道不看答案我也能解决问题了。（建立自信了！）在面试中，当遇到从未见过的问题时，我以前的经验给了我信心。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;三、练习解决问题能力&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;有些应聘者认为能解决脑筋急转弯问题就有良好的编程技能。如果你也这么认为，那你应当培养猜谜这方面的兴趣和技巧。你可以去图书馆或在网上找这方面的书。然后，挑一些有趣的问题，先别看解答。如果半个小时之内还想不出答案的，才可以查阅解答。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;第四、展现出真正的热情&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;另一个技巧就是要把真正的热情展现出来。作为人，我们应该真诚和热情与他人共处工作。另一方面，我们也要有看穿虚假笑脸的能力（没有这种能力，也需要锻炼出来），所以活出真我很重要。&lt;br /&gt;&lt;br /&gt;最优秀的面试官会让你讨论一些你非常热衷的事情，即使有些些事和你所应聘的岗位没有直接关系。然而，大多数面试官却没有这么做。虽然如此，你还是应当 好好考虑那些你非常感兴趣的事，并且要抓住机会来和面试官讨论一番。如果面试官允许的话，一定要在面试过程中的前段时间内完成，如果能在第一时间展现出来 更佳。面试开始10分钟后的效果可能就不怎么样了，因为面试官已经给你打分了。&lt;br /&gt;&lt;br /&gt;想象一下：你第一天去新岗位工作，转向新的开发平台，遇到一些有趣的新朋友，并且了解了公司的生活。（总之）在公司中会有很多让你兴奋的事，要不然，你为什么去应聘呢？&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;五、睡眠/休息&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;如果你缺觉的话，&amp;#8220;舌尖现象&amp;#8221;则会急剧上升，导致你在面试中就不能很好回忆事情。所以，面试前必须有个良好的睡眠。 到底睡多长时间最合适呢？请参考此文《&lt;a href="http://www.jobbole.com/entry.php/252"&gt;你的睡眠时间和睡眠质量达标了么？&lt;/a&gt;》。&lt;br /&gt;&lt;br /&gt;编者注：&amp;#8220;舌尖现象&amp;#8221;非常普遍，它是因为大脑对记忆内容的暂时性抑制所造成的。这种抑制来自于多方面，比如对有关事物的其他部分特征的回忆掩盖了所要 回忆的那部分特征，又比如回忆时的情境因素以及自身情绪因素的干扰等等。而消除了抑制，（如经他人提示、离开回忆困难时的情境、消除紧张情绪等，）舌尖现 象往往就会消失。很多人都有过这样的经历:一些平时很简单、很熟悉的字、单词或公式等话到嘴边就是无法记起，考试过后却突然忆起。再比如，遇到一个熟人， 就是叫不出名字来。心理学上称这种特殊现象为记忆的&amp;#8220;舌尖现象&amp;#8221;，意思是回忆的内容到了舌尖，只差一点，就是无法忆起。&lt;br /&gt;&lt;img src="http://www.cnblogs.com/guodapeng/aggbug/1842107.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodapeng/archive/2010/10/04/1842107.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodapeng/archive/2010/09/08/1821583.html</id><title type="text">ASP.NET Session丢失问题原因及解决方案</title><summary type="text">正常操作情况下会有ASP.NET Session丢失的情况出现。因为程序是在不停的被操作，排除Session超时的可能。另外，Session超时时间被设定成60分钟，不会这么快就超时的。现在我就把原因和解决办法写出来。ASP.NET Session丢失原因：由于Asp.net程序是默认配置，所以Web.Config文件中关于Session的设定如下：&amp;lt; sessionState mode='...</summary><published>2010-09-08T08:38:00Z</published><updated>2010-09-08T08:38:00Z</updated><author><name>Netprawn</name><uri>http://www.cnblogs.com/guodapeng/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodapeng/archive/2010/09/08/1821583.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodapeng/archive/2010/09/08/1821583.html"/><content type="html">&lt;p&gt;正常操作情况下会有ASP.NET Session丢失的情况出现。因为程序是在不停的被操作，排除Session超时的可能。另外，Session超时时间被设定成60分钟，不会这么快就超时的。&lt;/p&gt;&#xD;
&lt;p&gt;现在我就把原因和解决办法写出来。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;ASP.NET Session丢失原因：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;由于Asp.net程序是默认配置，所以Web.Config文件中关于Session的设定如下：&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt; sessionState mode='InProc'stateConnectionString='tcpip=127.0.0.1:42424' sqlConnectionString='datasource=127.0.0.1;Trusted_Connection=yes' cookieless='true'timeout='60'/&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们会发现sessionState标签中有个属性mode，它可以有3种取值：InProc、StateServer?SQLServer（大小写敏感）。默认情况下是InProc，也就是将Session保存在进程内（IIS5是aspnet_wp.exe，而IIS6是W3wp.exe），这个进程不稳定，在某些事件发生时，进程会重起，所以造成了存储在该进程内的Session丢失。&lt;/p&gt;&#xD;
&lt;p&gt;哪些情况下该进程会重起呢？微软的一篇文章告诉了我们：&lt;/p&gt;&#xD;
&lt;p&gt;1、配置文件中processModel标签的memoryLimit属性&lt;/p&gt;&#xD;
&lt;p&gt;2、Global.asax或者Web.config文件被更改&lt;/p&gt;&#xD;
&lt;p&gt;3、Bin文件夹中的Web程序（DLL）被修改&lt;/p&gt;&#xD;
&lt;p&gt;4、杀毒软件扫描了一些.config文件。&lt;/p&gt;&#xD;
&lt;p&gt;更多的信息请参考PRB: Session variables are lost intermittently in ASP.NET applications&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;ASP.NET Session丢失解决办法：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;前面说到的sessionState标签中mode属性可以有三个取值，除了InProc之外，还可以为StateServer、SQLServer。这两种存Session的方法都是进程外的，所以当aspnet_wp.exe重起的时候，不会影响到Session。&lt;/p&gt;&#xD;
&lt;p&gt;现在请将mode设定为StateServer。StateServer是本机的一个服务，可以在系统服务里看到服务名为ASP.NET State Service的服务，默认情况是不启动的。当我们设定mode为StateServer之后，请手工将该服务启动。&lt;/p&gt;&#xD;
&lt;p&gt;这样，我们就能利用本机的StateService来存储Session了，除非电脑重启或者StateService崩掉，否则Session是不会丢的（因Session超时被丢弃是正常的）。&lt;/p&gt;&#xD;
&lt;p&gt;除此之外，我们还可以将Session通过其他电脑的StateService来保存。具体的修改是这样的。同样还在sessionState标签中，有个stateConnectionString='tcpip=127.0.0.1:42424'属性，其中有个ip地址，默认为本机（127.0.0.1），你可以将其改成你所知的运行了StateService服务的电脑IP，这样就可以实现位于不同电脑上的Asp.net程序互通Session了。&lt;/p&gt;&#xD;
&lt;p&gt;如果你有更高的要求，需要在服务期重启时Session也不丢失，可以考虑将mode设定成SQLServer，同样需要修改sqlConnectionString属性。关于使用SQLServer保存Session的操作，请访问这里。&lt;/p&gt;&#xD;
&lt;p&gt;在使用StateServer或者SQLServer存储Session时，所有需要保存到Session的对象除了基本数据类型（默认的数据类型，如int、string等）外，都必须序列化。只需将[Serializable]标签放到要序列化的类前就可以了。&lt;/p&gt;&#xD;
&lt;p&gt;如：&lt;/p&gt;&#xD;
&lt;p&gt;[Serializable]&lt;/p&gt;&#xD;
&lt;p&gt;public class MyClass&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;......&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;具体的序列化相关的知识请参这里。&lt;/p&gt;&#xD;
&lt;p&gt;至此，ASP.NET Session丢失问题解决。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;关于asp.net Session丢失问题的总结&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;asp中Session的工作原理：&lt;/p&gt;&#xD;
&lt;p&gt;asp的Session是具有进程依赖性的。ASP Session状态存于IIS的进程中，也就是inetinfo.exe这个程序。所以当inetinfo.exe进程崩溃时，这些信息也就丢失。另外，重起或者关闭IIS服务都会造成信息的丢失。&lt;/p&gt;&#xD;
&lt;p&gt;asp.net Session的实现&lt;/p&gt;&#xD;
&lt;p&gt;asp.net的Session是基于HttpModule技术做的，HttpModule可以在请求被处理之前，对请求进行状态控制，由于Session本身就是用来做状态维护的，因此用HttpModule做Session是再合适不过了。&lt;/p&gt;&#xD;
&lt;p&gt;原因1：&lt;/p&gt;&#xD;
&lt;p&gt;bin目录中的文件被改写，asp.net有一种机制，为了保证dll重新编译之后，系统正常运行，它会重新启动一次网站进程，这时就会导致Session丢失，所以如果有access数据库位于bin目录，或者有其他文件被系统改写，就会导致Session丢失&lt;/p&gt;&#xD;
&lt;p&gt;原因2：&lt;/p&gt;&#xD;
&lt;p&gt;文件夹选项中，如果没有打开&amp;#8220;在单独的进程中打开文件夹窗口&amp;#8221;，一旦新建一个窗口，系统可能认为是新的Session会话，而无法访问原来的Session，所以需要打开该选项，否则会导致Session丢失&lt;/p&gt;&#xD;
&lt;p&gt;原因3：&lt;/p&gt;&#xD;
&lt;p&gt;似乎大部分的Session丢失是客户端引起的，所以要从客户端下手，看看cookie有没有打开&lt;/p&gt;&#xD;
&lt;p&gt;原因4：&lt;/p&gt;&#xD;
&lt;p&gt;Session的时间设置是不是有问题，会不会因为超时造成丢失&lt;/p&gt;&#xD;
&lt;p&gt;原因5：&lt;/p&gt;&#xD;
&lt;p&gt;IE中的cookie数量限制（每个域20个cookie）可能导致session丢失&lt;/p&gt;&#xD;
&lt;p&gt;原因6：&lt;/p&gt;&#xD;
&lt;p&gt;使用web garden模式，且使用了InProc mode作为保存session的方式&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;ASP.NET Session丢失问题解决经验&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1. 判断是不是原因1造成的，可以在每次刷新页面的时候，跟踪bin中某个文件的修改时间&lt;/p&gt;&#xD;
&lt;p&gt;2. 做Session读写日志，每次读写Session都要记录下来，并且要记录SessionID、Session值、所在页面、当前函数、函数中的第几次Session操作，这样找丢失的原因会方便很多&lt;/p&gt;&#xD;
&lt;p&gt;3. 如果允许的话，建议使用state server或sql server保存session，这样不容易丢失&lt;/p&gt;&#xD;
&lt;p&gt;4. 在global.asa中加入代码记录Session的创建时间和结束时间，超时造成的Session丢失是可以在SessionEnd中记录下来的。&lt;/p&gt;&#xD;
&lt;p&gt;5. 如果有些代码中使用客户端脚本，如javascript维护Session状态，就要尝试调试脚本，是不是因为脚本错误引起Session丢失&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guodapeng/aggbug/1821583.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodapeng/archive/2010/09/08/1821583.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodapeng/archive/2010/07/25/1784548.html</id><title type="text">欢迎大家光临我的淘宝小店 http://netprawn.taobao.com</title><summary type="text">欢迎大家光临我的淘宝小店 http://netprawn.taobao.com/</summary><published>2010-07-25T01:11:00Z</published><updated>2010-07-25T01:11:00Z</updated><author><name>Netprawn</name><uri>http://www.cnblogs.com/guodapeng/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodapeng/archive/2010/07/25/1784548.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodapeng/archive/2010/07/25/1784548.html"/><content type="html">欢迎大家光临我的淘宝小店 &lt;a href="http://netprawn.taobao.com/"&gt;http://netprawn.taobao.com/&lt;/a&gt;&lt;img src="http://www.cnblogs.com/guodapeng/aggbug/1784548.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodapeng/archive/2010/07/25/1784548.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodapeng/archive/2010/07/20/1781514.html</id><title type="text">成大事者</title><summary type="text">成大事的九种手段：1、敢于决断－－克服犹豫不定的习性　　　很多人之所以一事无成，最大的毛病就是缺乏敢于决断的手段，总是左顾右盼、思前想后，从而错失成功的最佳时机。成大事者在看到事情的成功可能性到来时，敢于做出重大决断，因此取得先机。2、挑战弱点－－彻底改变自己的缺陷　　人人都有弱点，不能成大事者总是固守自己的弱点，一生都不会发生重大转变；能成大事者总是善于从自己的弱点上开刀，去把自己变成一个能力超...</summary><published>2010-07-20T08:37:00Z</published><updated>2010-07-20T08:37:00Z</updated><author><name>Netprawn</name><uri>http://www.cnblogs.com/guodapeng/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodapeng/archive/2010/07/20/1781514.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodapeng/archive/2010/07/20/1781514.html"/><content type="html">&lt;p&gt;成大事的九种手段：&lt;br /&gt;1、敢于决断－－克服犹豫不定的习性　&lt;br /&gt;　　很多人之所以一事无成，最大的毛病就是缺乏敢于决断的手段，总是左顾右盼、思前想后，从而错失成功的最佳时机。成大事者在看到事情的成功可能性到来时，敢于做出重大决断，因此取得先机。&lt;br /&gt;2、挑战弱点－－彻底改变自己的缺陷&lt;br /&gt;　　人人都有弱点，不能成大事者总是固守自己的弱点，一生都不会发生重大转变；能成大事者总是善于从自己的弱点上开刀，去把自己变成一个能力超强的人。一个连自己的缺陷都不能纠正的人，只能是失败者！&lt;br /&gt;3、突破困境－－从失败中撮成功的资本&lt;br /&gt;　　人生总要面临各种困境的挑战，甚至可以说困境就是&amp;#8220;鬼门关&amp;#8221;。一般人会在困境面前浑身发抖，而成大事者则能把困境变为成功的有力跳板。&lt;br /&gt;4、抓住机遇－－善于选择、善于创造　&lt;br /&gt;　　机遇就是人生最大的财富。有些人浪费机遇轻而易举，所以一个个有巨大潜力的机遇都悄然溜跑，成大事都是绝对不允许溜走，并且能纵身扑向机遇。&lt;br /&gt;5、发挥强项－－做自己最擅长的事情&lt;br /&gt;　　一个能力极弱的人肯定难以打开人生局面，他必定是人生舞台上重量级选手的牺牲品；成大事者关于在自己要做的事情上，充分施展才智，一步一步地拓宽成功之路。&lt;br /&gt;6、调整心态－－切忌让情绪伤害自己　&lt;br /&gt;　　心态消极的人，无论如何都挑不起生活和重担，因为他们无法直面一个个人生挫折，成大事者则关于高速心态，即使在毫无希望时，也能看到一线成功的亮光。&lt;br /&gt;7、立即行动－－只说不做，徒劳无益&lt;br /&gt;　　一次行动胜过百遍心想。有些人是&amp;#8220;语言的巨人，行动的矮子&amp;#8221;，所以看不到更为实际现实的事情在他身上发生；成大事者是每天都靠行动来落实自己的人生计划的。&lt;br /&gt;8、善于交往－－巧妙利用人力资源　&lt;br /&gt;　　一个人不懂得交往，必然会推动人际关系的力量。成大事者的特点之一是：善于靠借力、借热去营造成功的局势，从而能把一件件难以办成的事办成，实现自己人生的规划。&lt;br /&gt;9、重新规划－－站到更高的起点上　&lt;br /&gt;　　人生是一个过程，成功也是一个过程。你如果满足于小成功，就会推动大成功。成大事者懂得从小到大的艰辛过程，所以在实现了一个个小成功之后，能继续拆开下一个人生的&amp;#8220;密封袋&amp;#8221;。&lt;/p&gt;&#xD;
&lt;p&gt;可以讲任何一种手段，都可以导致一种结果，但这个结果是不是最佳的结果，恐怕就很难说了。成大事者总是选择最佳的手段，达到最完善的结果，这就是非一般人所能做到的。因此在成功之路上，你要想成大事，首先要解决的问题就是：你的手段对你推动成功的计划是否立竿见影！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;成大事必备九种能力 &lt;/p&gt;&#xD;
&lt;p&gt;挑战生存的能力：善于在现实中寻找答案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;　　1、摆正心态，敢于面对现实&lt;br /&gt;　　对于那些不停地抱怨现实恶劣的人来说，不能称心如意的现实，就如同生活的牢笼，既束缚手脚，又束缚身心，因此常屈从于现实的压力，成为懦弱者；而那些真正成大事的人，则敢于挑战现实，在现实中磨炼自己的生存能力，这就叫强者！&lt;br /&gt;　　在此，我们可以得出一条成大事的经验：适应现实的变化而迅速改变自己的观念，最重要的是需要我们有一副聪慧的头脑和灵活的眼睛，做生活的有心人。&lt;br /&gt;　　在现实的压力之下，如果你能改变观念，适时而进，可收到事半功倍的效果。&lt;br /&gt;　　我们的自下而上须臾离不开现实，随着现实的变化，我们必须随之调整自己的观念、思想、行动及目标。这是生存的必须。&lt;br /&gt;　　如果我们有办法来改变现实，使之适合我们能力和欲望的发展需要，则是最难能可贵的。&lt;br /&gt;　　2、让你拥有过硬的自制能力&lt;br /&gt;　　自制，就是要克服欲望，不要因为有点压力就心里浮躁，遇到一点不称心的事就大发脾气。&lt;br /&gt;　　一个人除非先控制了自己，否则将无法控制别人。&lt;br /&gt;　　一个人只要有成大事的目标，知道自己想要的，然后采取行动，告诉自己绝对不要放弃，成功只是时间早晚而已。&lt;br /&gt;　　假使你在途中遇上了麻烦或阻碍，你就去面对它、解决它、然后再继续前进，这样问题才不会愈积愈多。&lt;br /&gt;　　你在一步步向上爬时，千万别对自己说&amp;#8220;不&amp;#8221;，因为&amp;#8220;不&amp;#8221;也许导致你决心的动摇，放弃你的目标，从而前功尽弃。&lt;br /&gt;　　人最难战胜的是自己，这话的含义是说，一个人成功的最大障碍不是来自于外界是，而是自身。只有控制住自己，才能控制住压力，让压力在你面前屈服。&lt;br /&gt;　　3、把情感装入理性之盒&lt;br /&gt;　　一种抵触情绪的产生往往是潜移默化的，但它对人一生的影响却是巨大的，这种影响从诸多小事上体现出来。我们应尽量消除自己的不良情绪、因为它不仅会给我们造成身心上的伤害，而且在我们通往成功的路途上，不良情绪有时会成为绊脚石。&lt;br /&gt;　　为了你的成功，你必须把情感装入理性之盒，你必须去适应别人，适应形势，不然的话，你注定成不了大事，注定会被淘汰。&lt;br /&gt;　　4、独处可以激发思考的力量&lt;br /&gt;　　如果你知道怎么独处的话，成大事者都是善于独处的人－－在独处的过程中激发思考的力量。&lt;br /&gt;　　自卑可以像一座大山把人压倒并让你永远沉默，也可以像推进器产生强大的动力。&lt;br /&gt;　　比别人先走一步，能创造一种成功的心境。&lt;br /&gt;　　在独处时，你应当有所思考，不要总人浮于事。&lt;br /&gt;　　5、压力是最好的推动力&lt;br /&gt;　　欲成大事者，因目标高远，压力可能会更大。但若欲成大事，就必须能承受这种压力，把压力当成推进人生的动力。&lt;br /&gt;　　人们最出色的工作往往是在外于逆境的情况下做出的。人要有所为就要有所不为。应做的一定要做好，不该做的坚决不做。&lt;br /&gt;　得到的并不一定就值得庆幸，失去的也并不完全是坏事情。&lt;br /&gt;　　6、以变应变，才有出路&lt;br /&gt;　　顺应时势，善于变化，及时调整自己的行动方案，这是成大事者适应现实的一种方法。&lt;br /&gt;　　一个人如果没有和人打交道的高超技巧，没有把各种情况都考虑周全的头脑，灵活应变的手段，就根本无法驾驭大的局面，将很难成大事。&lt;br /&gt;　　一个人能看清自己的现状，心态就会平衡许多，就能以一种客观的眼光去看待，认识这个世界，并且相应地调整自己的行为。&lt;br /&gt;　　7、自信心是人生的坚强支柱&lt;br /&gt;　　自信心充足者的适应能力就高，反之则适应能力较低。&lt;br /&gt;　　一般信心不足较严重的人常有一些身心症状，比如孤僻，害怕与人交往，说话过于偏激，悲观失望。&lt;br /&gt;　　如果做事成功的经验越多，那么自信心就越强。&lt;br /&gt;　　自我成功锻炼的机会越少，自信心就越弱，以致产生严重的自卑情绪。&lt;br /&gt;　&amp;nbsp;&amp;nbsp;&amp;nbsp; 十九世纪的思想家爱默生说：&amp;#8220;相信自己&amp;#8216;能&amp;#8217;，便会攻无不克。&amp;#8221;拿破仑说：&amp;#8220;在我的字典里没有不可能。&amp;#8221;&lt;br /&gt;　　8、把精力投入到自己的强项上&lt;br /&gt;　　大多数人的生活层次只停留在：为吃饭而吃、为搭公车而搭、为工作而工作、为了回家而回家。&lt;br /&gt;　　成大事者与不成大事者只差别在一些小小的动作：每天花5分钟阅读、多打一个电话、多努力一点、在适当时机的一个表示、表演上多费一点心思、多做一些研究，或在实验室中多试验一次。&lt;br /&gt;　　在行动之前你自己就知道你是否足以胜任这一个任务。&lt;br /&gt;　　没有任何借口可以解释你为会么长时间仍然无法胜任一项工作。&lt;br /&gt;　　不论你想追求的是什么，你必须强迫自己增强能力以实现目标。&lt;br /&gt;　　勤加练习、勤加练习、最后还是勤加练习！决不放弃学习，而且一定要将学到的知识运用于日常生活中。&lt;br /&gt;　　9、要专心地做好一件事&lt;br /&gt;　　如果大多数人集中精力专注于一项工作，他们都能把这项工作做得很好。&lt;br /&gt;　　最成大事者的商人是能够迅速而果断作出决定的人，他们总是首先确定一个明确的目标，并集中精力，专心致志地朝这个目标努力。&lt;br /&gt;　　一次只专心地做一件事，全身心地投入并积极地希望它成功，这样你的心里就不会感到筋疲力尽。&lt;br /&gt;　　把你需要做的事想象成是一大排抽屉中的一个小抽屉。不要总想着所有的抽屉，而要将精力集中于你已经打开的那个抽屉。每个人做人办事的手段都是不一样的，可以讲，一个人就有一种手段，一个人就有一种靠自己手段获得成功的途径。无数事实表明，有些人就是太过于自信，想念自己确认的手段能够解决任何问题，但不知道这种往往是起不到任何作用。因此，他们总觉得离成功的目标不是越来越近，而实际上越来越远。&lt;/p&gt;&#xD;
&lt;p&gt;成大事必备的9种心态&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 心态之一：积极向上&lt;br /&gt;　　1.时刻想着出人头地&lt;br /&gt;　　2.做&amp;#8220;小人物&amp;#8221;时要向&amp;#8220;大人物&amp;#8221;看齐&lt;br /&gt;　　3.惟有进取心，才能成大事&lt;br /&gt;　　4.摒弃逆境的干扰，寻找向上的根源&lt;br /&gt;　　5.放弃也是一种成功的开始&lt;br /&gt;　　6.在平凡中做不平凡的事&lt;br /&gt;　　7.保持年轻的心态很重要&lt;br /&gt;　　8.永远积极、主动、热忱&lt;br /&gt;　　心态之二：勤勉谦恭&lt;br /&gt;　　1.壮志凌云地想，脚踏实地地干　　&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.勤敬产业，谦恭做人&lt;br /&gt;　　3.勤勉高于天赋&lt;br /&gt;　　4.勤奋造就成功，懒惰摧毁天才&lt;br /&gt;　　5.养成勤奋的习惯会终生受益&lt;br /&gt;　　6.有一份耕耘，就有一份收获&lt;br /&gt;　　7.恒心与支持能&amp;#8220;点石成金&amp;#8221;&lt;br /&gt;　　8.莫道君行早，更有早行人&lt;br /&gt;　　心态之三：诚实守信&lt;br /&gt;　　1.诚实是一种源自自身的本质&lt;br /&gt;　　2.诚实守信才是大赢家&lt;br /&gt;　　3.以诚信奠定成功基业&lt;br /&gt;　　4.真诚的友谊会使你的事业更发达&lt;br /&gt;　　5.做人要有正直的品行&lt;br /&gt;　　6.诚实守信是成大事的&amp;#8220;信用卡&amp;#8221;&lt;br /&gt;　　7.要成大事，择友不可草率&lt;br /&gt;　　8.以真诚待人，用热忱做事&lt;br /&gt;　　心态之四：敢于挑战&lt;br /&gt;　　1.敢于挑战自我，克服贬低心理&lt;br /&gt;　　2.挑战无极限&lt;br /&gt;　　3.坚持到底造靠勇气，半途而废是懦夫&lt;br /&gt;　　4.用于挑战激起成大事的信心&lt;br /&gt;　　5.勇气是战胜困难的良方&lt;br /&gt;　　6.胜人者力，自胜者强&lt;br /&gt;　　7.毅力与恒心是成大事的基本功&lt;br /&gt;　　8.坚持不懈成大事，浅尝辄止无出路&lt;br /&gt;　　 心态之五：善于合作&lt;br /&gt;　　心态之六：知足平衡&lt;br /&gt;　　心态之七：乐观豁达&lt;br /&gt;　　心态之八：宽厚容人&lt;br /&gt;　　心态之九：永远自信&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guodapeng/aggbug/1781514.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodapeng/archive/2010/07/20/1781514.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodapeng/archive/2010/07/08/1773307.html</id><title type="text">C# 中的委托和事件</title><summary type="text">引言委托 和 事件在 .Net Framework中的应用非常广泛，然而，较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿，过了这个槛的人，觉得真是太容易了，而没有过去的人每次见到委托和事件就觉得心里别（bi&amp;#232;）得慌，混身不自在。本文中，我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和...</summary><published>2010-07-08T00:56:00Z</published><updated>2010-07-08T00:56:00Z</updated><author><name>Netprawn</name><uri>http://www.cnblogs.com/guodapeng/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodapeng/archive/2010/07/08/1773307.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodapeng/archive/2010/07/08/1773307.html"/><content type="html">&lt;p&gt;&lt;strong&gt;引言&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;委托 和 事件在 .Net Framework中的应用非常广泛，然而，较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿，过了这个槛的人，觉得真是太容易了，而没有过去的人每次见到委托和事件就觉得心里别（bi&amp;#232;）得慌，混身不自在。本文中，我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义，对它们的中间代码也做了讨论。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;将方法作为方法的参数&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们先不管这个标题如何的绕口，也不管委托究竟是个什么东西，来看下面这两个最简单的方法，它们不过是在屏幕上输出一句问候的话语： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetPeople(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 做某些额外的事情，比如初始化之类，此处略&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EnglishGreeting(name);&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; EnglishGreeting(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Morning, "&lt;/span&gt; + name);&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;暂且不管这两个方法有没有什么实际意义。GreetPeople用于向某人问好，当我们传递代表某人姓名的name参数，比如说&amp;#8220;Jimmy&amp;#8221;，进去的时候，在这个方法中，将调用EnglishGreeting方法，再次传递name参数，EnglishGreeting则用于向屏幕输出 &amp;#8220;Morning, Jimmy&amp;#8221;。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在假设这个程序需要进行全球化，哎呀，不好了，我是中国人，我不明白&amp;#8220;Morning&amp;#8221;是什么意思，怎么办呢？好吧，我们再加个中文版的问候方法： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; ChineseGreeting(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"早上好, "&lt;/span&gt; + name);&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这时候，GreetPeople也需要改一改了，不然如何判断到底用哪个版本的Greeting问候方法合适呢？在进行这个之前，我们最好再定义一个枚举作为判断的依据： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;enum&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Language&lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; English, Chinese&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetPeople(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name, Language lang){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//做某些额外的事情，比如初始化之类，此处略&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; swith(lang){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;case&lt;/span&gt; Language.English:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; EnglishGreeting(name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;case&lt;/span&gt; Language.Chinese:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ChineseGreeting(name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;OK，尽管这样解决了问题，但我不说大家也很容易想到，这个解决方案的可扩展性很差，如果日后我们需要再添加韩文版、日文版，就不得不反复修改枚举和GreetPeople()方法，以适应新的需求。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在考虑新的解决方案之前，我们先看看 GreetPeople的方法签名： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetPeople(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name, Language lang) &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们仅看 string name，在这里，string 是参数类型，name 是参数变量，当我们赋给name字符串&amp;#8220;jimmy&amp;#8221;时，它就代表&amp;#8220;jimmy&amp;#8221;这个值；当我们赋给它&amp;#8220;张子阳&amp;#8221;时，它又代表着&amp;#8220;张子阳&amp;#8221;这个值。然后，我们可以在方法体内对这个name进行其他操作。哎，这简直是废话么，刚学程序就知道了。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果你再仔细想想，假如GreetPeople()方法可以接受一个参数变量，这个变量可以代表另一个方法，当我们给这个变量赋值 EnglishGreeting的时候，它代表着 EnglsihGreeting() 这个方法；当我们给它赋值ChineseGreeting 的时候，它又代表着ChineseGreeting()方法。我们将这个参数变量命名为 MakeGreeting，那么不是可以如同给name赋值时一样，在调用 GreetPeople()方法的时候，给这个MakeGreeting 参数也赋上值么(ChineseGreeting或者EnglsihGreeting等)？然后，我们在方法体内，也可以像使用别的参数一样使用MakeGreeting。但是，由于MakeGreeting代表着一个方法，它的使用方式应该和它被赋的方法(比如ChineseGreeting)是一样的，比如： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;MakeGreeting(name); &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;好了，有了思路了，我们现在就来改改GreetPeople()方法，那么它应该是这个样子了： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetPeople(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name, *** MakeGreeting){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MakeGreeting(name);&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;注意到 *** ，这个位置通常放置的应该是参数的类型，但到目前为止，我们仅仅是想到应该有个可以代表方法的参数，并按这个思路去改写GreetPeople方法，现在就出现了一个大问题：&lt;strong&gt;这个代表着方法的MakeGreeting参数应该是什么类型的？&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;strong&gt;NOTE：&lt;/strong&gt;这里已不再需要枚举了，因为在给MakeGreeting赋值的时候动态地决定使用哪个方法，是ChineseGreeting还是 EnglishGreeting，而在这个两个方法内部，已经对使用&amp;#8220;morning&amp;#8221;还是&amp;#8220;早上好&amp;#8221;作了区分。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;聪明的你应该已经想到了，现在是委托该出场的时候了，但讲述委托之前，我们再看看MakeGreeting参数所能代表的 ChineseGreeting()和EnglishGreeting()方法的签名： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; EnglishGreeting(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name)&lt;br /&gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; ChineseGreeting(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name) &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如同name可以接受String类型的&amp;#8220;true&amp;#8221;和&amp;#8220;1&amp;#8221;，但不能接受bool类型的true和int类型的1一样。&lt;strong&gt;MakeGreeting的 参数类型定义 应该能够确定 MakeGreeting可以代表的方法种类，再进一步讲，就是MakeGreeting可以代表的方法 的 参数类型和返回类型。&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;于是，委托出现了：&lt;strong&gt;它定义了MakeGreeting参数所能代表的方法的种类，也就是MakeGreeting参数的类型。&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;strong&gt;NOTE：&lt;/strong&gt;如果上面这句话比较绕口，我把它翻译成这样：string 定义了name参数所能代表的&lt;strong&gt;值的种类&lt;/strong&gt;，也就是name参数的类型。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;本例中委托的定义： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;delegate&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetingDelegate(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name); &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;可以与上面EnglishGreeting()方法的签名对比一下，除了加入了delegate关键字以外，其余的是不是完全一样？ &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在，让我们再次改动GreetPeople()方法，如下所示： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetPeople(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name, GreetingDelegate MakeGreeting){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MakeGreeting(name);&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如你所见，委托GreetingDelegate出现的位置与 string相同，string是一个类型，那么GreetingDelegate应该也是一个类型，或者叫类(Class)。但是委托的声明方式和类却完全不同，这是怎么一回事？实际上，委托在编译的时候确实会编译成类。因为Delegate是一个类，所以在任何可以声明类的地方都可以声明委托。更多的内容将在下面讲述，现在，请看看这个范例的完整代码： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace Delegate {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //定义委托，它定义了可以代表的方法的类型&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;delegate&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetingDelegate(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; class Program {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private static void EnglishGreeting(string name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Morning, " + name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private static void ChineseGreeting(string name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("早上好, " + name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //注意此方法，它接受一个GreetingDelegate类型的方法作为参数&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void GreetPeople(string name, GreetingDelegate MakeGreeting) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MakeGreeting(name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void Main(string[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GreetPeople("Jimmy Zhang", EnglishGreeting);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GreetPeople("张子阳", ChineseGreeting);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.ReadKey();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;输出如下：&lt;br /&gt;Morning, Jimmy Zhang&lt;br /&gt;早上好, 张子阳 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们现在对委托做一个总结： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;委托是一个类，它定义了方法的类型，使得可以将方法当作另一个方法的参数来进行传递，这种将方法动态地赋给参数的做法，可以避免在程序中大量使用If-Else(Switch)语句，同时使得程序具有更好的可扩展性。&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;将方法绑定到委托&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;看到这里，是不是有那么点如梦初醒的感觉？于是，你是不是在想：在上面的例子中，我不一定要直接在GreetPeople()方法中给 name参数赋值，我可以像这样使用变量： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; Main(&lt;span style="color: #00f"&gt;string&lt;/span&gt;[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;string&lt;/span&gt; name1, name2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; name1 = &lt;span style="color: #a31515"&gt;"Jimmy Zhang"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; name2 = &lt;span style="color: #a31515"&gt;"张子阳"&lt;/span&gt;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GreetPeople(name1, EnglishGreeting);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GreetPeople(name2, ChineseGreeting);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadKey();&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;而既然委托GreetingDelegate 和 类型 string 的地位一样，都是定义了一种参数类型，那么，我是不是也可以这么使用委托？ &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; Main(&lt;span style="color: #00f"&gt;string&lt;/span&gt;[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GreetingDelegate delegate1, delegate2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate1 = EnglishGreeting;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate2 = ChineseGreeting;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GreetPeople(&lt;span style="color: #a31515"&gt;"Jimmy Zhang"&lt;/span&gt;, delegate1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; GreetPeople(&lt;span style="color: #a31515"&gt;"张子阳"&lt;/span&gt;, delegate2);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadKey();&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如你所料，这样是没有问题的，程序一如预料的那样输出。这里，我想说的是委托不同于string的一个特性：可以将多个方法赋给同一个委托，或者叫将多个方法绑定到同一个委托，当调用这个委托的时候，将依次调用其所绑定的方法。在这个例子中，语法如下： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; Main(&lt;span style="color: #00f"&gt;string&lt;/span&gt;[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt; delegate1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate1 = EnglishGreeting; &lt;span style="color: #008000"&gt;// 先给委托类型的变量赋值&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate1 += ChineseGreeting;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 给此委托变量再绑定一个方法&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 将先后调用 EnglishGreeting 与 ChineseGreeting 方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GreetPeople(&lt;span style="color: #a31515"&gt;"Jimmy Zhang"&lt;/span&gt;, delegate1);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadKey();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;输出为：&lt;br /&gt;Morning, Jimmy Zhang&lt;br /&gt;早上好, Jimmy Zhang &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;实际上，我们可以也可以绕过GreetPeople方法，通过委托来直接调用EnglishGreeting和ChineseGreeting： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; Main(&lt;span style="color: #00f"&gt;string&lt;/span&gt;[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt; delegate1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate1 = EnglishGreeting; &lt;span style="color: #008000"&gt;// 先给委托类型的变量赋值&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate1 += ChineseGreeting;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 给此委托变量再绑定一个方法&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 将先后调用 EnglishGreeting 与 ChineseGreeting 方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate1 (&lt;span style="color: #a31515"&gt;"Jimmy Zhang"&lt;/span&gt;);&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadKey();&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;strong&gt;NOTE：&lt;/strong&gt;这在本例中是没有问题的，但回头看下上面GreetPeople()的定义，在它之中可以做一些对于EnglshihGreeting和ChineseGreeting来说都需要进行的工作，为了简便我做了省略。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;注意这里，第一次用的&amp;#8220;=&amp;#8221;，是赋值的语法；第二次，用的是&amp;#8220;+=&amp;#8221;，是绑定的语法。如果第一次就使用&amp;#8220;+=&amp;#8221;，将出现&amp;#8220;使用了未赋值的局部变量&amp;#8221;的编译错误。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们也可以使用下面的代码来这样简化这一过程： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #2b91af"&gt;GreetingDelegate &lt;/span&gt;delegate1 = &lt;span style="color: #00f"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt;(EnglishGreeting);&lt;br /&gt;delegate1 += ChineseGreeting;&amp;nbsp;&amp;nbsp; // 给此委托变量再绑定一个方法 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;看到这里，应该注意到，这段代码第一条语句与实例化一个类是何其的相似，你不禁想到：上面第一次绑定委托时不可以使用&amp;#8220;+=&amp;#8221;的编译错误，或许可以用这样的方法来避免： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #2b91af"&gt;GreetingDelegate &lt;/span&gt;delegate1 = &lt;span style="color: #00f"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt;();&lt;br /&gt;delegate1 += EnglishGreeting;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 这次用的是 &amp;#8220;+=&amp;#8221;，绑定语法。&lt;br /&gt;&lt;/span&gt;delegate1 += ChineseGreeting;&amp;nbsp;&amp;nbsp; // 给此委托变量再绑定一个方法 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;但实际上，这样会出现编译错误： &amp;#8220;GreetingDelegate&amp;#8221;方法没有采用&amp;#8220;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;0&amp;#8221;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;个参数的重载。尽管这样的结果让我们觉得有点沮丧，但是编译的提示：&amp;#8220;没有0个参数的重载&amp;#8221;再次让我们联想到了类的构造函数。我知道你一定按捺不住想探个究竟，但再此之前，我们需要先把基础知识和应用介绍完。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;既然给委托可以绑定一个方法，那么也应该有办法取消对方法的绑定，很容易想到，这个语法是&amp;#8220;-=&amp;#8221;：&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; Main(&lt;span style="color: #00f"&gt;string&lt;/span&gt;[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;GreetingDelegate &lt;/span&gt;delegate1 = &lt;span style="color: #00f"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt;(EnglishGreeting);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate1 += ChineseGreeting;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 给此委托变量再绑定一个方法&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 将先后调用 EnglishGreeting 与 ChineseGreeting 方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GreetPeople(&lt;span style="color: #a31515"&gt;"Jimmy Zhang"&lt;/span&gt;, delegate1);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate1 -= EnglishGreeting; &lt;span style="color: #008000"&gt;//取消对EnglishGreeting方法的绑定&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 将仅调用 ChineseGreeting &lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GreetPeople(&lt;span style="color: #a31515"&gt;"张子阳"&lt;/span&gt;, delegate1); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadKey();&lt;br /&gt;}&lt;br /&gt;输出为：&lt;br /&gt;Morning, Jimmy Zhang&lt;br /&gt;早上好, Jimmy Zhang&lt;br /&gt;早上好, 张子阳 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;让我们再次对委托作个总结： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;使用委托可以将多个方法绑定到同一个委托变量，当调用此变量时(这里用&amp;#8220;调用&amp;#8221;这个词，是因为此变量代表一个方法)，可以依次调用所有绑定的方法。&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;事件的由来&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们继续思考上面的程序：上面的三个方法都定义在Programe类中，这样做是为了理解的方便，实际应用中，通常都是 GreetPeople 在一个类中，ChineseGreeting和 EnglishGreeting 在另外的类中。现在你已经对委托有了初步了解，是时候对上面的例子做个改进了。假设我们将GreetingPeople()放在一个叫GreetingManager的类中，那么新程序应该是这个样子的： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;namespace Delegate {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //定义委托，它定义了可以代表的方法的类型&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;delegate&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetingDelegate(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //新建的GreetingManager类&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class GreetingManager{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void GreetPeople(string name, GreetingDelegate MakeGreeting) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MakeGreeting(name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class Program {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void EnglishGreeting(string name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Morning, " + name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void ChineseGreeting(string name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("早上好, " + name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void Main(string[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ... ...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这个时候，如果要实现前面演示的输出效果，Main方法我想应该是这样的： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; Main(&lt;span style="color: #00f"&gt;string&lt;/span&gt;[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;GreetingManager&lt;/span&gt; gm = &lt;span style="color: #00f"&gt;new&lt;/span&gt; &amp;nbsp;GreetingManager();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.GreetPeople(&lt;span style="color: #a31515"&gt;"Jimmy Zhang"&lt;/span&gt;, EnglishGreeting);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.GreetPeople(&lt;span style="color: #a31515"&gt;"张子阳"&lt;/span&gt;, ChineseGreeting);&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们运行这段代码，嗯，没有任何问题。程序一如预料地那样输出了： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;Morning, Jimmy Zhang &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;早上好, 张子阳 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在，假设我们需要使用上一节学到的知识，将多个方法绑定到同一个委托变量，该如何做呢？让我们再次改写代码： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; &lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;Main&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;(&lt;span style="color: #00f"&gt;string&lt;/span&gt;[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;GreetingManager&lt;/span&gt; gm = &lt;span style="color: #00f"&gt;new&lt;/span&gt;&amp;nbsp; GreetingManager();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt; delegate1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate1 = EnglishGreeting;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate1 += ChineseGreeting;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.GreetPeople(&lt;span style="color: #a31515"&gt;"Jimmy Zhang"&lt;/span&gt;, delegate1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;输出：&lt;br /&gt;Morning, Jimmy Zhang&lt;br /&gt;早上好, Jimmy Zhang &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;到了这里，我们不禁想到：面向对象设计，讲究的是对象的封装，既然可以声明委托类型的变量(在上例中是delegate1)，我们何不将这个变量封装到 GreetManager类中？在这个类的客户端中使用不是更方便么？于是，我们改写GreetManager类，像这样： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingManager&lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//在GreetingManager类的内部声明delegate1变量&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt; delegate1;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetPeople(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name, GreetingDelegate MakeGreeting) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MakeGreeting(name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在，我们可以这样使用这个委托变量： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; Main(&lt;span style="color: #00f"&gt;string&lt;/span&gt;[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;GreetingManager&lt;/span&gt; gm = &lt;span style="color: #00f"&gt;new&lt;/span&gt;&amp;nbsp; GreetingManager();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.delegate1 = EnglishGreeting;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.delegate1 += ChineseGreeting;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.GreetPeople(&lt;span style="color: #a31515"&gt;"Jimmy Zhang"&lt;/span&gt;, gm.delegate1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;输出为：&lt;br /&gt;Morning, Jimmy Zhang&lt;br /&gt;早上好, Jimmy Zhang &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;尽管这样做没有任何问题，但我们发现这条语句很奇怪。在调用gm.GreetPeople方法的时候，再次传递了gm的delegate1字段： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;gm.GreetPeople(&lt;span style="color: #a31515"&gt;"Jimmy Zhang"&lt;/span&gt;, gm.delegate1); &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;既然如此，我们何不修改 GreetingManager 类成这样： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingManager&lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//在GreetingManager类的内部声明delegate1变量&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt; delegate1;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetPeople(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;if&lt;/span&gt;(delegate1!=&lt;span style="color: #00f"&gt;null&lt;/span&gt;){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//如果有方法注册委托变量&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate1(name);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//通过委托调用方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在客户端，调用看上去更简洁一些： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; Main(&lt;span style="color: #00f"&gt;string&lt;/span&gt;[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;GreetingManager&lt;/span&gt; gm = &lt;span style="color: #00f"&gt;new&lt;/span&gt;&amp;nbsp; GreetingManager();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.delegate1 = EnglishGreeting;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.delegate1 += ChineseGreeting;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.GreetPeople(&lt;span style="color: #a31515"&gt;"Jimmy Zhang"&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//注意，这次不需要再传递 delegate1变量&lt;br /&gt;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;输出为：&lt;br /&gt;Morning, Jimmy Zhang&lt;br /&gt;早上好, Jimmy Zhang &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;尽管这样达到了我们要的效果，但是还是存在着问题： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在这里，delegate1和我们平时用的string类型的变量没有什么分别，而我们知道，并不是所有的字段都应该声明成public，合适的做法是应该public的时候public，应该private的时候private。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们先看看如果把 delegate1 声明为 private会怎样？结果就是：&lt;strong&gt;这简直就是在搞笑。因为声明委托的目的就是为了把它暴露在类的客户端进行方法的注册，你把它声明为private了，客户端对它根本就不可见，那它还有什么用？&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;再看看把delegate1 声明为 public 会怎样？结果就是：&lt;strong&gt;在客户端可以对它进行随意的赋值等操作，严重破坏对象的封装性。&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;最后，第一个方法注册用&amp;#8220;=&amp;#8221;，是赋值语法，因为要进行实例化，第二个方法注册则用的是&amp;#8220;+=&amp;#8221;。但是，不&lt;strong&gt;管是赋值还是注册，都是将方法绑定到委托上，除了调用时先后顺序不同，再没有任何的分别，这样不是让人觉得很别扭么？&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在我们想想，如果delegate1不是一个委托类型，而是一个string类型，你会怎么做？&lt;strong&gt;答案是使用属性对字段进行封装。&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;于是，Event出场了，它封装了委托类型的变量，使得：&lt;strong&gt;在类的内部，不管你声明它是public还是protected，它总是private的。在类的外部，注册&amp;#8220;+=&amp;#8221;和注销&amp;#8220;-=&amp;#8221;的访问限定符与你在声明事件时使用的访问符相同。&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们改写GreetingManager类，它变成了这个样子： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingManager&lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//这一次我们在这里声明一个事件&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt; MakeGreet;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetPeople(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MakeGreet(name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;很容易注意到：MakeGreet 事件的声明与之前委托变量delegate1的声明唯一的区别是多了一个event关键字。看到这里，在结合上面的讲解，你应该明白到：&lt;strong&gt;事件其实没什么不好理解的，声明一个事件不过类似于声明一个进行了封装的委托类型的变量而已。&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;为了证明上面的推论，如果我们像下面这样改写Main方法： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; Main(&lt;span style="color: #00f"&gt;string&lt;/span&gt;[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;GreetingManager&lt;/span&gt; gm = &lt;span style="color: #00f"&gt;new&lt;/span&gt;&amp;nbsp; GreetingManager();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.MakeGreet = EnglishGreeting;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 编译错误1&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.MakeGreet += ChineseGreeting;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gm.GreetPeople(&lt;span style="color: #a31515"&gt;"Jimmy Zhang"&lt;/span&gt;);&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;会得到编译错误：事件&amp;#8220;Delegate.GreetingManager.MakeGreet&amp;#8221;只能出现在 += 或 -= 的左边(从类型&amp;#8220;Delegate.GreetingManager&amp;#8221;中使用时除外)。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;事件和委托的编译代码&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这时候，我们注释掉编译错误的行，然后重新进行编译，再借助Reflactor来对 event的声明语句做一探究，看看为什么会发生这样的错误： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt; MakeGreet; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/img/35626925@qq.com/201007/2010070801001317.gif"  alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;可以看到，实际上尽管我们在GreetingManager里将 MakeGreet 声明为public，但是，实际上MakeGreet会被编译成 私有字段，难怪会发生上面的编译错误了，因为它根本就不允许在GreetingManager类的外面以赋值的方式访问，从而验证了我们上面所做的推论。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们再进一步看下MakeGreet所产生的代码： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt; MakeGreet; &lt;span style="color: #008000"&gt;//对事件的声明 实际是 声明一个私有的委托变量&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;[MethodImpl(MethodImplOptions.Synchronized)]&lt;br /&gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; add_MakeGreet(GreetingDelegate value){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;this&lt;/span&gt;.MakeGreet = (GreetingDelegate) Delegate.Combine(&lt;span style="color: #00f"&gt;this&lt;/span&gt;.MakeGreet, value);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;[MethodImpl(MethodImplOptions.Synchronized)]&lt;br /&gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; remove_MakeGreet(GreetingDelegate value){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;this&lt;/span&gt;.MakeGreet = (GreetingDelegate) Delegate.Remove(&lt;span style="color: #00f"&gt;this&lt;/span&gt;.MakeGreet, value);&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在已经很明确了：&lt;strong&gt;MakeGreet事件确实是一个GreetingDelegate类型的委托，只不过不管是不是声明为public，它总是被声明为private。另外，它还有两个方法，分别是add_MakeGreet和remove_MakeGreet，这两个方法分别用于注册委托类型的方法和取消注册。&lt;/strong&gt;实际上也就是： &amp;#8220;+= &amp;#8221;对应 add_MakeGreet，&amp;#8220;-=&amp;#8221;对应remove_MakeGreet。而这两个方法的访问限制取决于声明事件时的访问限制符。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在add_MakeGreet()方法内部，实际上调用了System.Delegate的Combine()静态方法，这个方法用于将当前的变量添加到委托链表中。我们前面提到过两次，说委托实际上是一个类，在我们定义委托的时候： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;delegate&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; GreetingDelegate(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name); &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;当编译器遇到这段代码的时候，会生成下面这样一个完整的类： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;sealed&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;GreetingDelegate&lt;/span&gt;:System.MulticastDelegate{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; GreetingDelegate(&lt;span style="color: #00f"&gt;object&lt;/span&gt; @&lt;span style="color: #00f"&gt;object&lt;/span&gt;, IntPtr method);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;virtual&lt;/span&gt; IAsyncResult BeginInvoke(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name, AsyncCallback callback, &lt;span style="color: #00f"&gt;object&lt;/span&gt; @&lt;span style="color: #00f"&gt;object&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;virtual&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; EndInvoke(IAsyncResult result);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;virtual&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; Invoke(&lt;span style="color: #00f"&gt;string&lt;/span&gt; name);&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p &gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/img/35626925@qq.com/201007/2010070800590715.gif"  alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;关于这个类的更深入内容，可以参阅《CLR Via C#》等相关书籍，这里就不再讨论了。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;委托、事件与Observer设计模式&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;范例说明&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;上面的例子已不足以再进行下面的讲解了，我们来看一个新的范例，因为之前已经介绍了很多的内容，所以本节的进度会稍微快一些： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;假设我们有个高档的热水器，我们给它通上电，当水温超过95度的时候：1、扬声器会开始发出语音，告诉你水的温度；2、液晶屏也会改变水温的显示，来提示水已经快烧开了。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在我们需要写个程序来模拟这个烧水的过程，我们将定义一个类来代表热水器，我们管它叫：Heater，它有代表水温的字段，叫做temperature；当然，还有必不可少的给水加热方法BoilWater()，一个发出语音警报的方法MakeAlert()，一个显示水温的方法，ShowMsg()。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #00f"&gt;namespace&lt;/span&gt; Delegate {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Heater&lt;/span&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;&lt;span style="color: #00f"&gt;int&lt;/span&gt;&lt;/span&gt; temperature; &lt;span style="color: #008000"&gt;// 水温&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 烧水&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; BoilWater() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;for&lt;/span&gt; (&lt;span style="color: #00f"&gt;int&lt;/span&gt; i = 0; i &amp;lt;= 100; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temperature = i;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;if&lt;/span&gt; (temperature &amp;gt; 95) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MakeAlert(temperature);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ShowMsg(temperature);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 发出语音警报&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;private&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; MakeAlert(&lt;span style="color: #00f"&gt;int&lt;/span&gt; param) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Alarm：嘀嘀嘀，水已经 {0} 度了："&lt;/span&gt; , param);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 显示水温&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;private&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; ShowMsg(&lt;span style="color: #00f"&gt;int&lt;/span&gt; param) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Display：水快开了，当前温度：{0}度。"&lt;/span&gt; , param);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Program&lt;/span&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; &lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;Main&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Heater &lt;/span&gt;ht = &lt;span style="color: #00f"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Heater&lt;/span&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ht.BoilWater();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Observer设计模式简介&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;上面的例子显然能完成我们之前描述的工作，但是却并不够好。现在假设热水器由三部分组成：热水器、警报器、显示器，它们来自于不同厂商并进行了组装。那么，应该是&lt;strong&gt;热水器&lt;/strong&gt;仅仅负责烧水，它不能发出警报也不能显示水温；在水烧开时由&lt;strong&gt;警报器&lt;/strong&gt;发出警报、&lt;strong&gt;显示器&lt;/strong&gt;显示提示和水温。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这时候，上面的例子就应该变成这个样子：&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #008000"&gt;// 热水器&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Heater&lt;/span&gt; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;&lt;span style="color: #00f"&gt;int&lt;/span&gt;&lt;/span&gt; temperature;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 烧水&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;private&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; BoilWater() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;for&lt;/span&gt; (&lt;span style="color: #00f"&gt;int&lt;/span&gt; i = 0; i &amp;lt;= 100; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temperature = i;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;// 警报器&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Alarm&lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;private&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; MakeAlert(&lt;span style="color: #00f"&gt;int&lt;/span&gt; param) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Alarm：嘀嘀嘀，水已经 {0} 度了："&lt;/span&gt; , param);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;// 显示器&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Display&lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;private&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; ShowMsg(&lt;span style="color: #00f"&gt;int&lt;/span&gt; param) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Display：水已烧开，当前温度：{0}度。"&lt;/span&gt; , param);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这里就出现了一个问题：如何在水烧开的时候通知报警器和显示器？在继续进行之前，我们先了解一下Observer设计模式，Observer设计模式中主要包括如下两类对象： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;Subject：监视对象，它往往包含着其他对象所感兴趣的内容。在本范例中，热水器就是一个监视对象，它包含的其他对象所感兴趣的内容，就是temprature字段，当这个字段的值快到100时，会不断把数据发给监视它的对象。&lt;/li&gt;&lt;li&gt;Observer：监视者，它监视Subject，当Subject中的某件事发生的时候，会告知Observer，而Observer则会采取相应的行动。在本范例中，Observer有警报器和显示器，它们采取的行动分别是发出警报和显示水温。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;在本例中，事情发生的顺序应该是这样的： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;警报器和显示器告诉热水器，它对它的温度比较感兴趣(注册)。&lt;/li&gt;&lt;li&gt;热水器知道后保留对警报器和显示器的引用。&lt;/li&gt;&lt;li&gt;热水器进行烧水这一动作，当水温超过95度时，通过对警报器和显示器的引用，自动调用警报器的MakeAlert()方法、显示器的ShowMsg()方法。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;类似这样的例子是很多的，GOF对它进行了抽象，称为Observer设计模式：&lt;strong&gt;Observer设计模式是为了定义对象间的一种一对多的依赖关系，以便于当一个对象的状态改变时，其他依赖于它的对象会被自动告知并更新。Observer模式是一种松耦合的设计模式。&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;实现范例的Observer设计模式&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们之前已经对委托和事件介绍很多了，现在写代码应该很容易了，现在在这里直接给出代码，并在注释中加以说明。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #2b91af"&gt;&lt;span style="color: #00f"&gt;using&lt;/span&gt;&lt;/span&gt; System;&lt;br /&gt;&lt;span style="color: #00f"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span style="color: #00f"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #00f"&gt;namespace&lt;/span&gt; Delegate {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 热水器&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Heater&lt;/span&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;&lt;span style="color: #00f"&gt;int&lt;/span&gt;&lt;/span&gt; temperature;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;delegate&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; BoilHandler(&lt;span style="color: #00f"&gt;int&lt;/span&gt; param);&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//声明委托&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af"&gt;BoilHandler&lt;/span&gt; BoilEvent;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//声明事件&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 烧水&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; BoilWater() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;for&lt;/span&gt; (&lt;span style="color: #00f"&gt;int&lt;/span&gt; i = 0; i &amp;lt;= 100; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temperature = i;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;if&lt;/span&gt; (temperature &amp;gt; 95) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;if&lt;/span&gt; (BoilEvent != &lt;span style="color: #00f"&gt;null&lt;/span&gt;) { &lt;span style="color: #008000"&gt;//如果有对象注册&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BoilEvent(temperature);&amp;nbsp; &lt;span style="color: #008000"&gt;//调用所有注册对象的方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 警报器&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Alarm&lt;/span&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; MakeAlert(&lt;span style="color: #00f"&gt;int&lt;/span&gt; param) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Alarm：嘀嘀嘀，水已经 {0} 度了："&lt;/span&gt;, param);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 显示器&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Display&lt;/span&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; ShowMsg(&lt;span style="color: #00f"&gt;int&lt;/span&gt; param) { &lt;span style="color: #008000"&gt;//静态方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Display：水快烧开了，当前温度：{0}度。"&lt;/span&gt;, param);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Program&lt;/span&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; &lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;Main&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;&lt;st1&gt;&lt;/st1&gt;() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Heater &lt;/span&gt;heater = &lt;span style="color: #00f"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Heater&lt;/span&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Alarm &lt;/span&gt;alarm = &lt;span style="color: #00f"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Alarm&lt;/span&gt;();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; heater.BoilEvent += alarm.MakeAlert;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//注册方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; heater.BoilEvent += (&lt;span style="color: #00f"&gt;new&lt;/span&gt; Alarm()).MakeAlert;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//给匿名对象注册方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; heater.BoilEvent += Display.ShowMsg;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//注册静态方法&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; heater.BoilWater();&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//烧水，会自动调用注册过对象的方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;输出为：&lt;br /&gt;Alarm：嘀嘀嘀，水已经 96 度了：&lt;br /&gt;Alarm：嘀嘀嘀，水已经 96 度了：&lt;br /&gt;Display：水快烧开了，当前温度：96度。&lt;br /&gt;// 省略... &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;.Net Framework中的委托与事件&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;尽管上面的范例很好地完成了我们想要完成的工作，但是我们不仅疑惑：为什么.Net Framework 中的事件模型和上面的不同？为什么有很多的EventArgs参数？ &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在回答上面的问题之前，我们先搞懂 .Net Framework的编码规范： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;委托类型的名称都应该以EventHandler结束。&lt;/li&gt;&lt;li&gt;委托的原型定义：有一个void返回值，并接受两个输入参数：一个Object 类型，一个 EventArgs类型(或继承自EventArgs)。&lt;/li&gt;&lt;li&gt;事件的命名为 委托去掉 EventHandler之后剩余的部分。&lt;/li&gt;&lt;li&gt;继承自EventArgs的类型应该以EventArgs结尾。 &lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;再做一下说明： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;委托声明原型中的Object类型的参数代表了Subject，也就是监视对象，在本例中是 Heater(热水器)。回调函数(比如Alarm的MakeAlert)可以通过它访问触发事件的对象(Heater)。&lt;/li&gt;&lt;li&gt;EventArgs 对象包含了Observer所感兴趣的数据，在本例中是temperature。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;strong&gt;上面这些其实不仅仅是为了编码规范而已，这样也使得程序有更大的灵活性。&lt;/strong&gt;比如说，如果我们不光想获得热水器的温度，还想在Observer端(警报器或者显示器)方法中获得它的生产日期、型号、价格，那么委托和方法的声明都会变得很麻烦，而如果我们将热水器的引用传给警报器的方法，就可以在方法中直接访问热水器了。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在我们改写之前的范例，让它符合 .Net Framework 的规范： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="color: #2b91af"&gt;&lt;span style="color: #00f"&gt;using&lt;/span&gt;&lt;/span&gt; System;&lt;br /&gt;&lt;span style="color: #00f"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span style="color: #00f"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #00f"&gt;namespace&lt;/span&gt; Delegate {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 热水器&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Heater&lt;/span&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;&lt;span style="color: #00f"&gt;int&lt;/span&gt;&lt;/span&gt; temperature;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af"&gt;&lt;span style="color: #00f"&gt;string&lt;/span&gt;&lt;/span&gt; type = &lt;span style="color: #a31515"&gt;"RealFire 001"&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 添加型号作为演示&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af"&gt;&lt;span style="color: #00f"&gt;string&lt;/span&gt;&lt;/span&gt; area = &lt;span style="color: #a31515"&gt;"China Xian"&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 添加产地作为演示&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//声明委托&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;delegate&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; BoiledEventHandler(Object sender, BoiledEventArgs e);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af"&gt;BoiledEventHandler&lt;/span&gt; Boiled; &lt;span style="color: #008000"&gt;//声明事件&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 定义BoiledEventArgs类，传递给Observer所感兴趣的信息&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;BoiledEventArgs&lt;/span&gt; : &lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;readonly&lt;/span&gt; &lt;span style="color: #2b91af"&gt;&lt;span style="color: #00f"&gt;int&lt;/span&gt;&lt;/span&gt; temperature;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; BoiledEventArgs(&lt;span style="color: #00f"&gt;int&lt;/span&gt; temperature) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;this&lt;/span&gt;.temperature = temperature;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 可以供继承自 Heater 的类重写，以便继承类拒绝其他对象对它的监视&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;protected&lt;/span&gt; &lt;span style="color: #00f"&gt;virtual&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; OnBoiled(BoiledEventArgs e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;if&lt;/span&gt; (Boiled != &lt;span style="color: #00f"&gt;null&lt;/span&gt;) { &lt;span style="color: #008000"&gt;// 如果有对象注册&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Boiled(&lt;span style="color: #00f"&gt;this&lt;/span&gt;, e);&amp;nbsp; &lt;span style="color: #008000"&gt;// 调用所有注册对象的方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 烧水。&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; BoilWater() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;for&lt;/span&gt; (&lt;span style="color: #00f"&gt;int&lt;/span&gt; i = 0; i &amp;lt;= 100; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temperature = i;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;if&lt;/span&gt; (temperature &amp;gt; 95) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//建立BoiledEventArgs 对象。&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BoiledEventArgs e = &lt;span style="color: #00f"&gt;new&lt;/span&gt; BoiledEventArgs(temperature);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OnBoiled(e);&amp;nbsp; &lt;span style="color: #008000"&gt;// 调用 OnBolied方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 警报器&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Alarm&lt;/span&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; MakeAlert(Object sender, Heater.BoiledEventArgs e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Heater&lt;/span&gt; heater = (Heater)sender;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//这里是不是很熟悉呢？&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//访问 sender 中的公共字段&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Alarm：{0} - {1}: "&lt;/span&gt;, heater.area, heater.type);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Alarm: 嘀嘀嘀，水已经 {0} 度了："&lt;/span&gt;, e.temperature);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;// 显示器&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Display&lt;/span&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;public&lt;/span&gt; &lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; ShowMsg(Object sender, Heater.BoiledEventArgs e) {&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//静态方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Heater&lt;/span&gt; heater = (Heater)sender;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Display：{0} - {1}: "&lt;/span&gt;, heater.area, heater.type);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Display：水快烧开了，当前温度：{0}度。"&lt;/span&gt;, e.temperature);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Program&lt;/span&gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #00f"&gt;static&lt;/span&gt; &lt;span style="color: #00f"&gt;void&lt;/span&gt; Main() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Heater &lt;/span&gt;heater = &lt;span style="color: #00f"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Heater&lt;/span&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Alarm &lt;/span&gt;alarm = &lt;span style="color: #00f"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Alarm&lt;/span&gt;();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; heater.Boiled += alarm.MakeAlert;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//注册方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; heater.Boiled += (&lt;span style="color: #00f"&gt;new&lt;/span&gt; Alarm()).MakeAlert;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//给匿名对象注册方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; heater.Boiled += &lt;span style="color: #00f"&gt;new&lt;/span&gt; Heater.BoiledEventHandler(alarm.MakeAlert);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//也可以这么注册&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; heater.Boiled += Display.ShowMsg;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//注册静态方法&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; heater.BoilWater();&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000"&gt;//烧水，会自动调用注册过对象的方法&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;输出为：&lt;br /&gt;Alarm：China Xian - RealFire 001:&lt;br /&gt;Alarm: 嘀嘀嘀，水已经 96 度了：&lt;br /&gt;Alarm：China Xian - RealFire 001:&lt;br /&gt;Alarm: 嘀嘀嘀，水已经 96 度了：&lt;br /&gt;Alarm：China Xian - RealFire 001:&lt;br /&gt;Alarm: 嘀嘀嘀，水已经 96 度了：&lt;br /&gt;Display：China Xian - RealFire 001:&lt;br /&gt;Display：水快烧开了，当前温度：96度。&lt;br /&gt;&lt;span style="color: #008000"&gt;// 省略 &lt;/span&gt;... &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在本文中我首先通过一个GreetingPeople的小程序向大家介绍了委托的概念、委托用来做什么，随后又引出了事件，接着对委托与事件所产生的中间代码做了粗略的讲述。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在第二个稍微复杂点的热水器的范例中，我向大家简要介绍了 Observer设计模式，并通过实现这个范例完成了该模式，随后讲述了.Net Framework中委托、事件的实现方式。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;希望这篇文章能给你带来帮助。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guodapeng/aggbug/1773307.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodapeng/archive/2010/07/08/1773307.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodapeng/archive/2010/06/29/1767623.html</id><title type="text">毒辣辣的精辟句</title><summary type="text">1. Jian人永远都是Jian人，就算经济危机了，你也贵不了！　　2. 玩感情? 我会让你哭的很有节奏&amp;#8230; 　　3. 如果你看到面前的阴影，别怕，那是因为你的背后有阳光。　　4. 遇事要先从自己身上找原因，别一拉不出屎就怪地球没有吸引力？你喷粪之前先想想你自己都干过什么，有没有资格说别人！我是不够完美，但是我坦白自然，你呢？　　5. 别和我装你活的精彩过的幸福，也别祝我幸福，你有那资格...</summary><published>2010-06-29T07:33:00Z</published><updated>2010-06-29T07:33:00Z</updated><author><name>Netprawn</name><uri>http://www.cnblogs.com/guodapeng/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodapeng/archive/2010/06/29/1767623.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodapeng/archive/2010/06/29/1767623.html"/><content type="html">&lt;font color="#0000ff" size="4"&gt;1. Jian人永远都是Jian人，就算经济危机了，你也贵不了！&lt;br /&gt;　　2. 玩感情? 我会让你哭的很有节奏&amp;#8230; &lt;br /&gt;　　3. 如果你看到面前的阴影，别怕，那是因为你的背后有阳光。&lt;br /&gt;　　4. 遇事要先从自己身上找原因，别一拉不出屎就怪地球没有吸引力？你喷粪之前先想想你自己都干过什么，有没有资格说别人！我是不够完美，但是我坦白自然，你呢？&lt;br /&gt;　　5. 别和我装你活的精彩过的幸福，也别祝我幸福，你有那资格吗？&lt;br /&gt;　　6. 和人接触的时间越长，我就越喜欢狗，狗永远是狗，人有时候不是人！&lt;br /&gt;　　7. 别在分手的时候和我说：&amp;#8220;其实你很好&amp;#8221; 草，那你还甩我？　　&lt;br /&gt;　　8. 唾沫是用来数钞票的，而不是用来讲道理的.&lt;br /&gt;　　9. 不该看的不看，不该说的不说，不该听的不听，不该想的不想，该干什么干什么去&lt;br /&gt;　　10. 少在我面前拽的跟二五八万似的，摆好POSE 再装逼！&lt;br /&gt;　　11. 我等待你的关心，等的关上了心&amp;#8230;&lt;br /&gt;　　12. 不要吹牛B、请把牛B还给牛、因为牛也需要性生活！&lt;br /&gt;　　13. 喜欢你的时候你说什么就是什么, 不喜欢你的时候, 你说你是什么?&lt;br /&gt;　　14. 我们只有一个地球，所以你要爱护地球；地球上只有一个我，所以你也要爱护我！&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15. 开心了就笑，不开心了就过会儿再笑！ 高兴了就乐，不高兴了就使劲乐！&lt;br /&gt;　　16. 别整天说大话，出门就装逼，没有那金刚钻就别揽那瓷器活，说话跟放屁似的，放屁还有味呢，你连味都没有！&lt;br /&gt;　　17. 啊~没事，就是清明上坟的时候，突然想起你，为什么那么多人死，你还不死呢？&lt;br /&gt;　　18. 这几天除了吵架什么都没干。 一种架各种吵。 是我不懂事还是把你当人看了？&lt;br /&gt;　　19. 唯一一个可以霸占男人回忆的方法 就是: 活的更好!&lt;br /&gt;　　20. 那些人旳名字, 有些我忘了, 有些我却会永远记得。 正如, 有旳人 曾经是无话不说，最后 却无话可说&amp;#8230;&lt;br /&gt;　　21. 时间不知不觉，我们后知后觉&amp;#8230;&lt;br /&gt;　　22. 生活就是：生出来,活下去~&lt;br /&gt;　　23. 如果你觉得自己很牛B, 那你一定是傻B.&lt;br /&gt;　　24. 我是心眼小，但是不缺，我是脾气好，但不是没有！&lt;br /&gt;　　25. 每天笑三声：通天，通地，通便~ 好身材___拉出来！&lt;/font&gt;&lt;img src="http://www.cnblogs.com/guodapeng/aggbug/1767623.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodapeng/archive/2010/06/29/1767623.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guodapeng/archive/2010/06/23/1763248.html</id><title type="text">80后的80条幽默有哲理的语录</title><summary type="text">1.人长得漂亮不如活得漂亮！　　2.当裤子失去皮带，才懂得什麽叫做依赖。　　3.烟不听话，所以我们&amp;#8220;抽烟&amp;#8221;。　　4.你发怒一分钟，便失去60秒的幸福。　　5.做与不做的最大区别是：后者拥有对前者的评论权。　　6.当男人遇见女人，从此只有纪念日，没有独立日。　　7.闭上眼睛，我看到了我的前途&amp;#8230;&amp;#8230;　　8.路见不平一声吼，吼完继续往前走。　　9.幸福是个比...</summary><published>2010-06-23T01:24:00Z</published><updated>2010-06-23T01:24:00Z</updated><author><name>Netprawn</name><uri>http://www.cnblogs.com/guodapeng/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guodapeng/archive/2010/06/23/1763248.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guodapeng/archive/2010/06/23/1763248.html"/><content type="html">1.人长得漂亮不如活得漂亮！&lt;br /&gt;　　2.当裤子失去皮带，才懂得什麽叫做依赖。&lt;br /&gt;　　3.烟不听话，所以我们&amp;#8220;抽烟&amp;#8221;。&lt;br /&gt;　　4.你发怒一分钟，便失去60秒的幸福。&lt;br /&gt;　　5.做与不做的最大区别是：后者拥有对前者的评论权。&lt;br /&gt;　　6.当男人遇见女人，从此只有纪念日，没有独立日。&lt;br /&gt;　　7.闭上眼睛，我看到了我的前途&amp;#8230;&amp;#8230;&lt;br /&gt;　　8.路见不平一声吼，吼完继续往前走。&lt;br /&gt;　　9.幸福是个比较级，要有东西垫底才感觉得到。&lt;br /&gt;　　10.人生有时就像电脑，说死机就死机，没得商量。&lt;br /&gt;　　11.海阔凭鱼跃，破鼓任人捶。&lt;br /&gt;　　12.有钱的捧个钱场，没钱的回家取点钱来捧个钱场。&lt;br /&gt;　　13.能够说出的委屈，便不算委屈；能够抢走的爱人，便不算爱人。&lt;br /&gt;　　14.一句&amp;#8220;拿着&amp;#8221;胜过两句&amp;#8220;我会给你的&amp;#8221;。&lt;br /&gt;　　15.无理取闹，必有所图！&lt;br /&gt;　　16.不能自拔的，除了爱情，还有别人地里的萝卜。&lt;br /&gt;　　17.我以为&amp;#8220;隐身&amp;#8221;别人就找不到我了，没用的，像我这样的人，无论在哪里都像漆黑夜里的萤火虫，够鲜明够出众。&lt;br /&gt;　　18.有些事，明知是错的也要去坚持，因为不甘心；有些人，明知是爱的也要去放弃，因为没结局；有时候，明知路没　　　　 了却还在前行，因为习惯了。&lt;br /&gt;　　19.钻石恒久远，一颗就破产！&lt;br /&gt;　　20.铁公鸡还会留点铁锈呢，你根本就是个不锈钢公鸡！&lt;br /&gt;　　21.还没来得及区沾花惹草，就被人拔光了。&lt;br /&gt;　　22.女为悦己者容,男为悦己者穷。&lt;br /&gt;　　23.每个人出生的时候都是原创，可悲的是，很多人渐渐都成了盗版！&lt;br /&gt;　　24.不要说别人脑子有病，脑子有病的前提是必须有个脑子。&lt;br /&gt;　　25.在哪里摔倒就在哪里躺下。&lt;br /&gt;　　26.&amp;#8220;浪漫&amp;#8221;是一袭美丽的晚礼服，但你不能一天到晚都穿着它。&lt;br /&gt;　　27.把一切平凡的事做好即不平凡，把一切简单的事做对即不简单。&lt;br /&gt;　　28.我又不是王子，为什莫女孩遇见我总认为自己应该成为公主！&lt;br /&gt;　　29.情侣间最矛盾的地方就是幻想彼此的未来，却惦记着对方的过去。&lt;br /&gt;　　30.所谓缘分，就是爱情成功时的理由，失败时的借口；所谓婚礼，就是有情人终成&amp;#8220;家属&amp;#8221;的仪式；所谓分手，就是女人说了一百次也未必能做到，而男人说一次就能实现的事。&lt;br /&gt;　　31.逆风的方向，更适合飞翔。我不怕万人阻挡，只怕自己投降。&lt;br /&gt;　　32.问候不一定郑重其事，但一定要真诚感人。&lt;br /&gt;　　33.快乐要懂得分享，才能加倍快乐。&lt;br /&gt;　　34.忙碌是一种幸福，让我们没时间体会痛苦；奔波是一种快乐，让我们真实的感受生活；疲惫是一种享受，让我们无暇空虚,&lt;br /&gt;　　35.生活就像&amp;#8220;呼吸&amp;#8221;，&amp;#8220;呼&amp;#8221;是为了出一口气，&amp;#8220;吸&amp;#8221;是为了争一口气。&lt;br /&gt;　　36.我问过烦恼了，他根本不爱你，让我转告你不要自作多情；健康让我带封情书给你：他对你一生不变！&lt;br /&gt;　　37.知识就像内裤，看不见但很重要。&lt;br /&gt;　　38.爱一个人好难，爱两个人好玩，爱三个人好烦，爱四个人翻船，爱五个人彻底玩儿完。&lt;br /&gt;　　39.女人吻男人是一种幸福，男人吻女人是一种口福。&lt;br /&gt;　　40.结婚就是给自由穿件棉衣，活动起来不方便，但会很温暖。&lt;br /&gt;　　41.英雄难过美人关，我不是英雄，美人让我过了关。&lt;br /&gt;　　42.玩命：要在有命的情况下才能玩，命都没了，拿什么玩啊！&lt;br /&gt;　　43.别人一夸我，我就担心，担心别人夸得不够。&lt;br /&gt;　　44.爱情永远比婚姻圣洁，婚姻永远比爱情实惠。&lt;br /&gt;　　45.探索的旅程不在于发现新大陆，而在于培养新视角。&lt;br /&gt;　　46.本无意与众不同，怎奈何品味出众。&lt;br /&gt;　　47.一个人能走多远，要看他与谁同行；一个人有多优秀，要看他有谁指点；一个人有多成功，要看他有谁相伴。&lt;br /&gt;　　48.叹气是最浪费时间的事情，哭泣是最浪费力气的行径。&lt;br /&gt;　　49.男人的大脑喜欢女人的内心，但是眼睛喜欢女人的外表。&lt;br /&gt;　　50.有钱就败家，没钱就拜神。&lt;br /&gt;　　51.当初结婚是看上眼了，后来离婚是看走眼了,&lt;br /&gt;　　52.咸鱼翻身，还是咸鱼。&lt;br /&gt;　　53.我可以选择放弃，但不能放弃选择。&lt;br /&gt;　　54.作为失败的典型，你实在是太成功了。&lt;br /&gt;　　55.不是人人都能活的低调，可以低调的基础是随时都能高调。&lt;br /&gt;　　56.女人喜欢长得坏坏的男人，不是喜欢长坏了的男人.&lt;br /&gt;　　57.古人说:&amp;#8220;女为悦己者容&amp;#8221;,其实应该是&amp;#8220;女为己悦者容&amp;#8221;.&lt;br /&gt;　　58.我们的爱情在这天夭折了，只为了让彼此有重生的机会.&lt;br /&gt;　　59.老板用你的时候你就是人才，不用你的时候就变成裁人!&lt;br /&gt;　　60.一个成功的男人就是能够挣到比妻子花的钱更多的钱，一个成功的女人就是能够找到这样一个男人.&lt;br /&gt;　　61.跌倒了，爬起来再哭.&lt;br /&gt;　　62.婚姻的杀手有时不是外遇，而是时间.&lt;br /&gt;　　63.一个月亮一个你，两个影子我和你，三生有幸认识你，四个西施不如你.&lt;br /&gt;　　64.绝口不提不是因为忘记，而是因为铭记.&lt;br /&gt;　　65.有人说爱情是上辈子欠下的情债这辈子来还，我上辈子一定俗不可耐，所以今生无债可还!&lt;br /&gt;　　66.让未来到来，让过去过去.&lt;br /&gt;　　67.微小的幸福就在身边，容易满足就是天堂.&lt;br /&gt;　　68.个头大就一定厉害吗？恐龙不是照样灭绝了！&lt;br /&gt;　　69.善意的谎言：就是给自己的欺骗找一个很好的借口。&lt;br /&gt;　　70.父母忽悠孩子叫教育；孩子忽悠父母叫欺骗；互相忽悠叫代沟。&lt;br /&gt;　　71.孤单是一个人的狂欢，狂欢是一群人的孤单。&lt;br /&gt;　　72.别跟我谈感情，谈感情伤钱。&lt;br /&gt;　　73.人生最精彩的不是实现梦想的瞬间，而是坚持梦想的过程!&lt;br /&gt;　　74.感觉不到痛苦的爱情不是真正的爱情，感觉不到幸福的婚姻必是悲哀的婚姻。&lt;br /&gt;　　75.一道幸福之门关闭时，另一道就会打开。我们经常盯着关闭的门，对开启的门却视若无睹。&lt;br /&gt;　　76.咖啡苦与甜，不在于怎末搅拌,而在于是否放糖；一段伤痛，不在于怎末忘记，而在于是否有勇气重新开始。&lt;br /&gt;　　77.人之所以活的累,是因为放不下架子、撕不开面子、解不开情结。&lt;br /&gt;　　78.爱是费尽心力地全身投入，然后再百转千回地抽身而出！&lt;br /&gt;　　79.我自横刀向天笑，笑完之后去睡觉!&lt;br /&gt;　　80.幽默就是一个人想哭的时候还有笑的兴致！&lt;img src="http://www.cnblogs.com/guodapeng/aggbug/1763248.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guodapeng/archive/2010/06/23/1763248.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
