码迷,mamicode.com
首页 > 其他好文 > 详细

委托的组合与分解

时间:2015-02-26 14:47:19      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

     委托变量可以代表某一函数,使用委托变量就相当于调用一个函数。如果仅是这么简单,

那么直接调用函数不就行了吗?为什么还要引入委托这一特性?

      事实上,委托不仅可以代表一个函数,还可以组合一堆的函数,然后批量执行它们。

      请看示例程序 UseDelegate,它展示了委托变量之间的组合与分解。

      项目中定义了一个委托类型 MyDelegate:

          delegate void MyDelegate(string  s);          

      接着定义了一个拥有两个静态方法的类 MyClass:

技术分享

      请仔细看以下代码:

技术分享

      上述代码中委托变量  c组合了两个委托变量   a和    b,因而,它拥有两个函数,当执行

“c("c=a+b");”时,将导致 MyClass类的两个静态函数都被执行。

      象 c这样的委托变量又称为多路委托变量

      可以用加法运算符来组合单个委托变量为多路委托变量。类似地,也可以使用减法运算

符来从一个多路委托变量中移除某个委托变量。

      上述示例的运行结果为:

调用委托变量  a:

您好, a!

调用委托变量  b:

再见, b!

调用委托变量  c:

您好, c=a+b!

再见, c=a+b!

调用委托变量  d:

再见, d=c-a!

委托的组合与分解

标签:

原文地址:http://www.cnblogs.com/LCL390/p/4301194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!