一佳一

记录像1+1一样简洁的代码
随笔 - 396, 文章 - 0, 评论 - 95, 阅读 - 107万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

事件传递数据

Posted on   一佳一  阅读(18)  评论(0编辑  收藏  举报

派生的自定义类

    /// <summary>
    /// 派生自EventArgs的类,用于传递数据
    /// </summary>
    class PaperContentEventArgs:EventArgs
    {
        public string Name { get; set; }                    //用于存储数据,当事件被调用时,可利用其进行传递数据。
    }

发布者

复制代码
/// <summary>
    /// 报社
    /// </summary>
    class NewspaperOffice 
    {
        //1、创建事件并发布
        public event EventHandler<PaperContentEventArgs> StartPublishPaper;    

        public void Publish()
        {            
            Console.WriteLine("已发布报纸!报社传递数据:阿辉");
            PaperContentEventArgs paperContent = new PaperContentEventArgs();
            paperContent.Name = "阿辉";
            
            //2、触发事件,通知订阅者收报纸进行阅读
            StartPublishPaper(this, paperContent);                                            
        }
    }
复制代码

订阅者

复制代码
/// <summary>
    /// 阿辉 订阅者
    /// </summary>
    class AhuiPeople 
    {
        public AhuiPeople(NewspaperOffice npo)
        {
            npo.StartPublishPaper += SubscriptinPaper;                    //3、订阅事件
        }

        void SubscriptinPaper(object sender, PaperContentEventArgs e)
        {            
            Console.WriteLine("阿辉接收到报纸,开始阅读!收到的传递数据为:"+e.Name);
        }
    }
复制代码

 

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示