千家信息网

C#基于自定义事件EventArgs怎么实现发布订阅模式

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍"C#基于自定义事件EventArgs怎么实现发布订阅模式"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C#基于自定义事件EventArgs怎
千家信息网最后更新 2025年01月16日C#基于自定义事件EventArgs怎么实现发布订阅模式

这篇文章主要介绍"C#基于自定义事件EventArgs怎么实现发布订阅模式"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C#基于自定义事件EventArgs怎么实现发布订阅模式"文章能帮助大家解决问题。

一、事件参数

    //事件参数    class CustomEventArgs:EventArgs    {        public CustomEventArgs( string message)        {            Message = message;        }        public string Message { get; set; }    }

二、事件发布者

    //事件发布者:事件的定义和调用,触发事件也可以写在这里面    class Publisher    {        public event EventHandler CustomEvent;        public void DoSomething()        {            //调用之前可以在这里写一些其他的东西            //            OnCustomEvent(new CustomEventArgs("我是事件参数"));        }        //在受保护的虚方法中包装事件的调用 ,这样就允许派生类重写调用行为        protected virtual void OnCustomEvent(CustomEventArgs e)        {            CustomEvent?.Invoke(this, e);        }    }

三、事件订阅者

    //事件订阅者:事件方法编写和订阅功能    class Subscriber    {        private readonly string Str;        ////订阅的动作要在这里面了,所以才要传过来发布者        public Subscriber( string str,Publisher publisher)        {            Str = str;            //订阅事件            publisher.CustomEvent += HanderCustomEvent;        }        private void HanderCustomEvent(object sender, CustomEventArgs e)        {            //在这里做想做的事件            Console.WriteLine($"发布者:{sender.GetType()},订阅者:{Str},参数是:{e.Message}");        }    }    //事件订阅者:事件方法编写和订阅功能    class Subscriber2    {        private readonly string Str;        ////订阅的动作要在这里面了,所以才要传过来发布者        public Subscriber2(string str, Publisher publisher)        {            Str = str;            //订阅事件            publisher.CustomEvent += HanderCustomEvent;        }        private void HanderCustomEvent(object sender, CustomEventArgs e)        {            //在这里做想做的事件            Console.WriteLine($"发布者:{sender.GetType()},订阅者:{Str},参数是:{e.Message}");        }    }

四、调用事件

        static void Main(string[] args)        {            Publisher publisher = new Publisher();            Subscriber subscriber1 = new Subscriber("subscriber1", publisher);            Subscriber2 subscriber2 = new Subscriber2("subscriber2", publisher);            //调用引发事件的方法            publisher.DoSomething();            Console.ReadKey();        }

关于"C#基于自定义事件EventArgs怎么实现发布订阅模式"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

事件 订阅 发布者 参数 方法 订阅者 模式 C# 知识 功能 动作 行业 不同 实用 东西 内容 实用性 实际 文章 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 智能照明软件开发怎么样 二维码信息怎么和服务器对应的 mc盗版服务器违法吗 查看数据库是否是主库 服务器备份共享方案 ccd工业相机 软件开发 日本内阁网络安全中心 连云港网络安全审计系统咨询公司 江西数字化城管软件开发电话 浙商数据库官网 如果服务器上没有用户信息 桓台企业软件开发咨询 街道网络安全应急预案方案 端口跳转到另一个服务器 管家婆单机版怎么复制数据库 安徽银行软件开发中心 上海软件开发外包 南通亿荣网络技术有限公司 软件开发售前售后 网络安全升旗仪式演讲稿 学校的代理服务器是怎样做的 帝国神话服务器保护多久 网络安全 输入网络密码 华中农业大学数据库试题 成人教育继续教育软件开发 如何进入软件开发商 网络安全在我心总结 数据库范式化由高到低 my sql是什么类型的数据库 军职在线网络技术与应用实验
0