C# 事件委托案例

举报
小傅哥 发表于 2021/04/21 23:53:01 2021/04/21
2.3k+ 0 0
【摘要】 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...

      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 MyHandler2(object sender, MyEventArgs e);
      public class Program
       {
      public static void Main()
       {
       B b = new B();
       A a = new A(b);
       MyEventArgs e1 = new MyEventArgs();
       MyEventArgs e2 = new MyEventArgs();
       e1.m_id = "Event args for event 1";
       e2.m_id = "Event args for event 2";
       b.FireEvent1(e1);
       b.FireEvent2(e2);
       Console.ReadKey();
       }
       }
      class A
       {
      public A(B b)
       {
       b.Event1 += new MyHandler1(OnHandler1);
       b.Event2 += new MyHandler2(OnHandler2);
       }
      public const string m_id = "Class A";
      public void OnHandler1(object sender, MyEventArgs e)
       {
       Console.WriteLine("I am in OnHandler1 and MyEventArgs is {0}", e.m_id);
       }
      public void OnHandler2(object sender, MyEventArgs e)
       {
       Console.WriteLine("I am in OnHandler2 and MyEventArgs is {0}", e.m_id);
       }
       }
      class B
       {
      public event MyHandler1 Event1;
      public event MyHandler2 Event2;
      public void FireEvent1(MyEventArgs e)
       {
      if (Event1 != null)
       {
       Event1(this, e);
       }
       }
      public void FireEvent2(MyEventArgs e)
       {
      if (Event2 != null)
       {
       Event2(this, e);
       }
       }
       }
      public class MyEventArgs
       {
      public string m_id;
       }
      }
  
 

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

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

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

作者其他文章

评论(0

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

    全部回复

    上滑加载中

    设置昵称

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

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

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