C#基于自定义事件EventArgs怎么实现发布订阅模式
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章主要介绍"C#基于自定义事件EventArgs怎么实现发布订阅模式"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C#基于自定义事件EventArgs怎
千家信息网最后更新 2025年11月06日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安全错误
数据库的锁怎样保障安全
数据库怎么定义主属性
计算机软件开发行业证书
如何落实网络安全责任
U8第二次安装数据库
兆芯 电话面试 软件开发
lol服务器会弹出安全警报吗
情非得以吉他谱软件开发
b站数据库脱库
数据库硬解析多
数据库安全性控制论文
游戏开发客户端和服务器区别
镇江idc服务器技术指导
服务器网卡状态待激活
云盾服务器管理
服务器上如何开启远程管理
长城杯网络安全竞赛晋级名单
csgo社区服务器升级
浙江三轴点胶软件开发
杨浦区数据库工程安防设备设施
软件开发可以去那工作
网络安全大会电子锁
搞软件开发 长沙
软件开发线框是什么意思
远程进入服务器管理系统
停电后来电提示远端服务器无响应
企业网络安全分析及解决方案研究
江西学软件开发在哪里
网络安全相关黑板报
供应链安全管理制度网络安全
多表头怎么存入数据库