当前位置: 首页 > news >正文

c#自定义事件

自定义事件类

 定义一个自定义事件参数类

为了传递更多的信息,我们定义一个自定义的事件参数类

public class CustomEventArgs : EventArgs
{public string Message { get; set; }
}
3. 定义一个发布者类

接下来,我们定义一个发布者类,包含一个事件和一个触发事件的方法

public class EventPublisher
{// 声明一个事件,使用自定义的委托类型public event EventHandler<CustomEventArgs> CustomEvent;// 触发事件的方法public void TriggerEvent(){// 触发事件时传递自定义参数CustomEvent?.Invoke(this, new CustomEventArgs { Message = "事件被触发!" });}
}
  1. 定义一个订阅者类

然后,我们定义一个订阅者类,它的作用是处理事件,包含一个处理事件的方法

public class EventSubscriber
{// 事件处理方法public void HandleEvent(object sender, CustomEventArgs e){Console.WriteLine($"接收到事件消息:{e.Message}");}
}
  1. 在 Program.cs 里使用事件

最后,我们在 Program.cs 中创建发布者和订阅者实例,并订阅和触发事件,留意代码中的注释

using EventSample;// 创建发布者和订阅者实例
EventPublisher publisher = new EventPublisher();
EventSubscriber subscriber = new EventSubscriber();// 订阅事件,将订阅者的处理方法绑定到发布者的事件
publisher.CustomEvent += subscriber.HandleEvent;// 触发事件,传递消息给订阅者处理
publisher.TriggerEvent();// 取消订阅事件
publisher.CustomEvent -= subscriber.HandleEvent;
  1. 运行程序,可以看到事件被触发,如下图:

参考链接

轻松掌握 C# 事件:从创建到使用

特此记录

anlog

2024年12月22日

http://www.lryc.cn/news/508024.html

相关文章:

  • 【读书笔记】《论语别裁》寂寞的享受
  • Oracle筑基篇-调度算法-LRU的引入
  • 单元测试-Unittest框架实践
  • linux驱动:6ull(3)自动分配设备号来创建led驱动
  • GM_T 0039《密码模块安全检测要求》题目
  • 第四届电气工程与控制科学
  • LabVIEW在电液比例控制与伺服控制中的应用
  • 植物大战僵尸杂交版v3.0.2最新版本(附下载链接)
  • 车辆重识别代码笔记12.19
  • linux内核网络分层概述
  • H3C交换机配置 telnet 服务
  • 江苏计算机专转本 技能Mysql知识点总结(二)
  • 边缘智能网关助力打造建筑智慧消防物联网
  • 学习Cookie 提升
  • OpenAI 发布会 9 天技术总结
  • 免费注册.news域名一年(今日有效)
  • 解决JIRA、Confluence用户自动注销、反复登录的问题
  • Oracle创建逻辑目录
  • 【AIGC-ChatGPT进阶副业提示词】星际占卜师:探索星象能量的艺术【限时免费阅读,一天之后自动进入进阶课程】
  • 泷羽sec-shell编程(9)
  • 【Vue-4小时速通01-ES6】
  • 基于STM32的智能仓储环境监测的Proteus仿真
  • logback日志控制台打印与写入文件
  • 成方金融科技后端部分笔试题 - 解析
  • WatchAlert - 开源多数据源告警引擎
  • Linux procps-ng 包详解
  • [react] <NavLink>自带激活属性
  • 智能语音识别模块与声音传感器模块对比分析:原理、优缺点、性价比与应用领域
  • 大模型+安全实践之春天何时到来?
  • 贪心算法【Lecode_HOT100】