知识大全 一个关于C#的睡前故事[1]

Posted 彼得

篇首语:一个人必须学习与自己不同类型的人相处,不然生活何其孤苦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 一个关于C#的睡前故事[1]相关的知识,希望对你有一定的参考价值。

NET委托:一个关于C#的睡前故事[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    从前 在南方一块奇异的土地上 有个工人名叫彼得 他非常勤奋 对他的老板总是百依百顺 但是他的老板是个吝啬的人 从不信任别人 坚决要求随时知道彼得的工作进度 以防止他偷懒 但是彼得又不想让老板呆在他的办公室里站在背后盯着他 于是就对老板做出承诺 无论何时 只要我的工作取得了一点进展我都会及时让你知道 彼得通过周期性地使用 带类型的引用 (原文为 typed reference 也就是delegate??) 回调 他的老板来实现他的承诺 如下 class Worker  public void Advise(Boss boss) _boss = boss;  public void DoWork()   Console WriteLine( 工作: 工作开始 );  if( _boss != null ) _boss WorkStarted();    Console WriteLine( 工作: 工作进行中 );  if( _boss != null ) _boss WorkProgressing();   Console WriteLine( 工作: 工作完成 );  if( _boss != null )    int grade = _boss WorkCompleted();   Console WriteLine( 工人的工作得分= + grade);    private Boss _boss;class Boss  public void WorkStarted() /* 老板不关心 */  public void WorkProgressing() /*老板不关心 */  public int WorkCompleted()   Console WriteLine( 时间差不多! );  return ; /* 总分为 */ class Universe  static void Main()   Worker peter = new Worker();  Boss boss = new Boss();  peter Advise(boss);  peter DoWork();  Console WriteLine( Main: 工人工作完成 );  Console ReadLine();    接口  现在 彼得成了一个特殊的人 他不但能容忍吝啬的老板 而且和他周围的宇宙也有了密切的联系 以至于他认为宇宙对他的工作进度也感兴趣 不幸的是 他必须也给宇宙添加一个特殊的回调函数Advise来实现同时向他老板和宇宙报告工作进度 彼得想要把潜在的通知的列表和这些通知的实现方法分离开来 于是他决定把方法分离为一个接口 interface IWorkerEvents  void WorkStarted(); void WorkProgressing(); int WorkCompleted();class Worker  public void Advise(IWorkerEvents events) _events = events;  public void DoWork()   Console WriteLine( 工作: 工作开始 );  if( _events != null ) _events WorkStarted();   Console WriteLine( 工作: 工作进行中 );  if(_events != null ) _events WorkProgressing();  Console WriteLine( 工作: 工作完成 );  if(_events != null )    int grade = _events WorkCompleted();   Console WriteLine( 工人的工作得分= + grade);    private IWorkerEvents _events;class Boss : IWorkerEvents  public void WorkStarted() /* 老板不关心 */  public void WorkProgressing() /* 老板不关心 */  public int WorkCompleted()   Console WriteLine( 时间差不多! );  return ; /* 总分为 */    委托  不幸的是 每当彼得忙于通过接口的实现和老板交流时 就没有机会及时通知宇宙了 至少他应该忽略身在远方的老板的引用 好让其他实现了IWorkerEvents的对象得到他的工作报告   他的老板还是抱怨得很厉害 彼得! 他老板吼道 你为什么在工作一开始和工作进行中都来烦我?!我不关心这些事件 你不但强迫我实现了这些方法 而且还在浪费我宝贵的工作时间来处理你的事件 特别是当我外出的时候更是如此!你能不能不再来烦我? cha138/Article/program/net/201311/15527

相关参考

知识大全 一个关于C#的睡前故事[3]

NET委托:一个关于C#的睡前故事[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 求一个关于诚信的小故事

求一个关于诚信的小故事2001年高考语文全国卷的作文就引了这个故事开头。记得这样一则耐人寻味的寓言:一位自认为经过漫长人生跋涉取得了成功的年轻人,身背“健康”、“美貌”、“诚信”、“机敏”、“才学”、

知识大全 求一个关于贪心的寓言故事

求一个关于贪心的寓言故事渔夫捕鱼 有一个渔夫贪图省事,织的网只有一张桌子那么大。他出海一天也没有捕到一条鱼,垂头丧气地回到了家。邻居对他说:“你织的网太小了,哪里能捕到鱼,还是把网织得大一点再出海捕鱼

知识大全 求一个关于兔子的爱情小故事 感人小故事 都可以 最好能是原创

求一个关于兔子的爱情小故事感人小故事都可以最好能是原创最近的这一片山坡来了一群羊,慢慢的把整片山的青草都啃光了。小兔帅帅来到美美的家里,看着消瘦了一圈的美美,原本红色的眼睛更红了;“跟我来吧”帅帅说,

知识大全 请帮我找一个英文故事~关于一对朋友在沙漠中,其中一个朋友打了另一个一巴掌

请帮我找一个英文故事~关于一对朋友在沙漠中,其中一个朋友打了另一个一巴掌Twofriendswerewalkingthroughthedesert.Duringsomepointofthejourne

知识大全 急求一个关于普通话的故事,大概50字,不要太多

急求一个关于普通话的故事,大概50字,不要太多普通话的故事我坐火车去唐山,对面一位十七八岁的小姑娘跟我用普通话交谈,她说她是丰南人,上北京看姐姐去了。我奇怪地问她:“你是丰南人?怎么说话没有丰南的口音

知识大全 《三国演义》《水浒传》《西游记》里关于一个三的故事,分别写出一个

《三国演义》《水浒传》《西游记》里关于一个三的故事,分别写出一个三国:三英战吕布水浒:三打祝家庄西游:三打白骨精《水浒传》中可写武大郎的痴情《西游记》可写唐僧和女儿国的国王因为各自的人生任务没能在一起

知识大全 我是小导游作文450字去长城内含一个关于长城的故事

我是小导游作文450字去长城内含一个关于长城的故事大家好!欢迎您来到长城游玩,希望我们的服务能让您多一份欢乐,也希望您能玩得开心,玩得尽兴,玩得满足.接下来,我先向诸位介绍一下长城的概况.长城位于北京

知识大全 关于c#静态方法和实例方法的辨析和应用

  本文将围绕c#静态方法和实例方法讨论一下针对一些观点如静态方法是常驻内存还有静态方法比实例方法先装载做一个辨析同时讨论下何时用静态方法何时用实例方法  前几日在微软的好友发给我一个链接《静态方法和

知识大全 关于长征小故事

关于长征小故事长征故事第一个:《金色的鱼钩》一九四五年秋天,红军进入了草地。由于三个小同志得了肠胃病的关系,所以指导员就让炊事班长照顾他们。三个病号一天走了二十里路,到了宿营地,班长就到处挖草根,和着