C# 事件委托案例

举报
小傅哥 发表于 2021/04/21 23:53:01 2021/04/21
【摘要】 using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace TDelegate{ public delegate void MyHandler1(object sender, MyEventArgs e); public delegate void...

  
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace TDelegate
  6. {
  7. public delegate void MyHandler1(object sender, MyEventArgs e);
  8. public delegate void MyHandler2(object sender, MyEventArgs e);
  9. public class Program
  10. {
  11. public static void Main()
  12. {
  13. B b = new B();
  14. A a = new A(b);
  15. MyEventArgs e1 = new MyEventArgs();
  16. MyEventArgs e2 = new MyEventArgs();
  17. e1.m_id = "Event args for event 1";
  18. e2.m_id = "Event args for event 2";
  19. b.FireEvent1(e1);
  20. b.FireEvent2(e2);
  21. Console.ReadKey();
  22. }
  23. }
  24. class A
  25. {
  26. public A(B b)
  27. {
  28. b.Event1 += new MyHandler1(OnHandler1);
  29. b.Event2 += new MyHandler2(OnHandler2);
  30. }
  31. public const string m_id = "Class A";
  32. public void OnHandler1(object sender, MyEventArgs e)
  33. {
  34. Console.WriteLine("I am in OnHandler1 and MyEventArgs is {0}", e.m_id);
  35. }
  36. public void OnHandler2(object sender, MyEventArgs e)
  37. {
  38. Console.WriteLine("I am in OnHandler2 and MyEventArgs is {0}", e.m_id);
  39. }
  40. }
  41. class B
  42. {
  43. public event MyHandler1 Event1;
  44. public event MyHandler2 Event2;
  45. public void FireEvent1(MyEventArgs e)
  46. {
  47. if (Event1 != null)
  48. {
  49. Event1(this, e);
  50. }
  51. }
  52. public void FireEvent2(MyEventArgs e)
  53. {
  54. if (Event2 != null)
  55. {
  56. Event2(this, e);
  57. }
  58. }
  59. }
  60. public class MyEventArgs
  61. {
  62. public string m_id;
  63. }
  64. }

文章来源: bugstack.blog.csdn.net,作者:Yao__Shun__Yu,版权归原作者所有,如需转载,请联系作者。

原文链接:bugstack.blog.csdn.net/article/details/17416985

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。