C#教程第8讲委托2(学习笔记)

来源:互联网 发布:windows server pack 编辑:程序博客网 时间:2024/05/01 05:59
第8讲  委托2
快乐乔巴的博客
视频讲师:陈广老师
  大家好,今天我们接着上一课的内容继续讲解。上一节课委托1主要讲解了委托对静态方法的代理。那么这一节课我们就主要讲一下委托如何代理动态的方法。听了上节课的内容可能会有一个感觉,代码的架构不是很好。不好在什么地方呢?我来看下上节课的代码:
  张三李四王五在吃东西,这时候如果马六陈七也加入进来吃东西,我们按照上面的逻辑就必须再写2个静态方法。如果有10个人吃东西,那么我们就要增加10个静态方法。如果100个人吃东西,就要...这样的代码很明显非常的不合理。这时候我们就可以考虑对这些方法进行一些包装,通过观察每个方法都有两个共同点,第一他们都有共同的属性名字,第二他们在吃一样东西就是food参数。这样我们就可以把这些属性和方法包装到一个类里面,进行动态的调用。   
运行后我们看,这一次得出的结果跟上节课的是一模一样的,而我们这节课只是对程序的架构改了一下。刚才我们演示了如何代理一个动态的方法,我们接着往下讲。
  其实我们可以这样去理解位委托,比如说我们在讲可不可以把一个方法做为另一个方法的参数进行传递呢?这样做可以带来很多的好处,而代理呢就可以实现这个功能。代理,本身就是一个对象,他可以作为一个方法的参数进行传递。下面我们就来演示如何把委托作为一个方法的参数进行传递。
  这回我们倒回来,首先呢想像一下这个方法是如何调用的,然后呢回过头来再来实现这个方法。
编译执行,效果如下:

  这里我们演示了如何把委托作为一个方法的参数进行传递,并对它进行动态的调用。
  如果大家对委托要有一个深入的了解请访问MSDN网站的WebCast网络讲座,其中余晖老师有一个《Modern C#系列课程》,他的最后一讲是《深入委托和事件》,大家可以下载进行观看学习。
  好,这节课的内容就讲到这里。
由快乐乔巴听课摘写笔记