网站大量收购独家精品文档,联系QQ:2885784924

NET课件--第4部分-课件.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
定义一个委托,它决定了要被回调的函数签名。 public delegate void ShowTime(); 定义两个要被回调方法的类: class A { public void AShowTime() { System.Console.WriteLine(A: + DateTime.Now); } } class B { public static void BShowTime() { System.Console.WriteLine(B: + DateTime.Now); } } 实现代码: 类 Controller 完成回调的核心工作。 class Controller { private ShowTime d; //用于接收外界对象提供的方法,以实现回调 //外界对象将需要回调的方法传入 public void RegisterDelegateForCallback(ShowTime method) { d += method; } //移除要回调的方法 public void UnRegisterDelegateForCallback(ShowTime method) { d -= method; } //实现回调 public void CallBack() { if (d != null) d.Invoke(); //调用所有回调的方法 } } 使用 Controller 类的代码如下: static void Main(string[ ] args) { A a= new A(); //创建被回调方法的对象 Controller c = new Controller(); //注册两个回调方法 c.RegisterDelegateForCallback(a.AShowTime); c.RegisterDelegateForCallback(B.BShowTime); Console.WriteLine(敲任意键显示当前时间,ESC键退出); while (Console.ReadKey(true).Key != ConsoleKey.Escape) { c.CallBack(); //回调 } } 上述代码向回调列表中增加了两个方法,每次按一个键,就回调一次。 可根据需要调用 UnRegisterDelegateForCallback() 从回调方法列表中移除一个方法: c.UnRegisterDelegateForCallback(a.AShowTime); 则回调将只执行剩余的那个方法 BShowTime() 了。 如果需要以固定的时间间隔调用某个函数,则可以使用.NET Framework提供的TimerCallBack委托,其定义如下: public delegate void TimerCallback(Object state) 示例 如图所示,程序每隔一秒钟自动输出当前的时间。 3. 使用TimerCallBack 委托实现定时回调 定义一个类用于向回调函数提供参数信息。 class TaskInfo { public int count = 0; } 被回调的函数如下: st

文档评论(0)

魏魏 + 关注
官方认证
内容提供者

教师资格证持证人

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

版权声明书
用户编号:5104001331000010
认证主体仪征市联百电子商务服务部
IP属地江苏
领域认证该用户于2023年10月19日上传了教师资格证
统一社会信用代码/组织机构代码
92321081MA26771U5C

1亿VIP精品文档

相关文档