深入浅出话委托.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深入浅出话委托

深入浅出话委托 小序 好久不来更新Blog了,一是因为工作比较忙,最重要的还是交了女朋友:),太爱她了。回顾了一下前面写的文章,看来大家还是很喜欢我的灌水风格,那今天就来写一写最近被问到的最多的问题——委托与事件。并把本文献给支持我工作的兄弟姐妹们和我亲爱的女友(虽然你看不懂代码,嘻嘻)。说实话,论“深入”,就我这臭水平绝对深不到哪儿去,我尽量给大家讲明白就是了。如果内容上有什么闪失,麻烦兄弟姐妹们多拍几块砖——小弟正急着盖房子呢! 正文 一.什么是委托(Delegate) ?????????先来点经典的解释——摘自MSDN:A?delegate?is a?type①?that?references a method②. Once a delegate is assigned a method,?it behaves exactly like that method③. The delegate method can be used like any other method, with parameters and a return value. 我先把它译过来:委托(Delegate,也有人称之为“代理”)是一种数据类型,这种类型(的实例)引用着一个方法。一旦为一个委托分配(你可以理解为“挂接”)上一个方法,那么它的行为将与这个方法一致(挂接上就是为了调用这个方法,不一致我还挂个什么劲儿……原来老外也会说车轱辘话:p)。委托可以像任何方法一样使用,比如有或者没有参数,以及返回值等等。 ?????????我给出一段例子,演示什么是Delegate。 ? //=======水之真谛出品======== //===/FantasiaX //===上善若水,润物无声===== using?System; using?System.Collections.Generic; using?System.Text; namespace?DelegateSample { ????//?地雷(类) ????class?Mine ????{ ????????public?void?Blast(int?enemies) ????????{ ????????????Console.WriteLine(Killed {0} Japanese soldier(s)!!!, enemies); ????????} ????} ????//?院子(类) ????class?Yard ????{ ????????public?int?enemiesInYard; ????????public?Mine?mineInYard =?new?Mine(); ????} ????//?绳子(委托) ????public?delegate?void?PullingString(int?enemies); ????//?战士(类) ????class?Soldier ????{ ????????//一个战士可以控制三颗地雷(你可以尝试用ArrayList,更爽) ????????public?PullingString[] pullingStrings =?new?PullingString[3]; ????} ????//?主程序类 ????class?Program ????{ ????????static?void?Main(string[] args) ????????{ ????????????//?三个院子? ????????????Yard?yardOfZhang =?new?Yard(); ????????????Yard?yardOfWang =?new?Yard(); ????????????Yard?yardOfLi =?new?Yard(); ???????????? ????????????//?嘎子给地雷挂弦儿 ????????????Soldier?gazi =?new?Soldier(); ????????????gazi.pullingStrings[0] =?new?PullingString(yardOfZhang.mineInYard.Blast); ????????????gazi.pullingStrings[1] =?new?PullingString(yardOfWang.mineInYard.Blast); ????????????gazi.pullingStrings[2] =?new?PullingString(yardOfLi.mineInYard.Blast); ????????????//?鬼子来啦!老张家的院儿里有五个鬼子,老王家三个,老李家十个。 ????????????yardOfZhang

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档