C#中委托的最简单理解方式

   近这段时间比较空闲,回顾了一下基础的东西,温故而知新嘛!!

  里就先谈一下面向对象最基础而且最重要的类型之一“委托”。下面用一个比较容易理解的例子来方便理解:

  信大家都看过《黑客帝国》吧,里面有一个镜头是把直升飞机的驾驶程式下载到人的大脑中,那个人立即就会驾驶直升飞机了(呵呵,如果现在有这样的科技就好了,什么都不用学)。嗯,其实我们也可以把那个直升飞机的驾驶程式(就是直升飞机的驾驶方法)理解成是一个委托的实例。当把程式下载到人的大脑,就是向人脑传递直升飞机的驾驶方法,这就好比调用一个带有委托类型参数的方法 。

  我们再想像一下,如果人类只需要下载了某种机器的“驾驶程式”就立即会操作这种的器的话,其他动物是不是也可以呢!

唉,罗嗦了这么多,还是看一下例子比较实际。

 

  下面定义了两个类:一个是驾驶员类,一个是驾驶方法类。

DriveClass类中我们可以定义所有动物为驾驶员;而各种机器的驾驶方法也封装在ProgramClass类里面。

 

那每个驾驶员怎么能够轻易的驾驶每种机器呢,奥妙就在下面:

这里定义了一个用来封装驾驶方法的委托,如果需要传递某种机器的驾驶方法,就需要实例化它的一个委托,例如要封装一个汽车的驾驶方法:

 

好,现在尝试一下让猴子驾驶汽车吧:

"pd”就是下载到猴脑的汽车驾驶方法,这样猴子才能驾驶汽车。

 

上面代码输出:

猴子驾驶:

哈哈,这样就可以驾驶汽车了!

 

下面给出完整代码

  

 

运行以上代码,可以得到:

人类驾驶:

哈哈,这样就可以驾驶汽车了!

哈哈,这样就可以驾驶轮船了!

哈哈,这样就可以驾驶飞机了!

猴子驾驶:

哈哈,这样就可以驾驶汽车了!

哈哈,这样就可以驾驶轮船了!

哈哈,这样就可以驾驶飞机了!

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值