经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
C#-事件(十八)
来源:cnblogs  作者:Tynam.Yang  时间:2018/11/22 10:03:29  对本文有异议
概述
  事件(Event) 基本上说是一个用户操作,如按键、点击、鼠标移动
  使用事件,可以很方便地确定程序执行顺序
  事件在类中声明且生成,且通过使用同一个类或其他类中的委托与事件处理程序关联
  包含事件的类用于发布事称为 发布器(publisher) 类
  其他接受该事件的类被称为 订阅器(subscriber) 类
  事件发布器和事件订阅器通过委托来实现发送方和接收方的事件触发
 
实例
  1. 1 using System;
  2. 2 namespace ConsoleApp1
  3. 3 {
  4. 4 class eventTest
  5. 5 {
  6. 6 // 声明委托
  7. 7 public delegate void EventHander(object sender, EventArgs e);
  8. 8 public string sex { get; set; } = "man";
  9. 9
  10. 10 // 定义事件,基于委托
  11. 11 public event EventHander GoToilet;
  12. 12 // 触发事件
  13. 13 public void OnEvent(EventArgs e)
  14. 14 {
  15. 15 if(this.GoToilet != null)
  16. 16 {
  17. 17 this.GoToilet(this, e);
  18. 18 }
  19. 19 }
  20. 20 public static void Toilet(object sender, EventArgs e)
  21. 21 {
  22. 22 var core = (eventTest)sender;
  23. 23 Console.WriteLine("please enter " + core.sex + " toilet");
  24. 24 }
  25. 25 static void Main(string[] args)
  26. 26 {
  27. 27 var et = new eventTest();
  28. 28 et.GoToilet += new EventHander(Toilet);
  29. 29 while (true)
  30. 30 {
  31. 31 et.OnEvent(null);
  32. 32 Console.ReadKey();
  33. 33 }
  34. 34 }
  35. 35 }
  36. 36 }

 结果

   

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号