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 = "事件被触发!" });}
}
-
定义一个订阅者类
然后,我们定义一个订阅者类,它的作用是处理事件,包含一个处理事件的方法
public class EventSubscriber
{// 事件处理方法public void HandleEvent(object sender, CustomEventArgs e){Console.WriteLine($"接收到事件消息:{e.Message}");}
}
-
在 Program.cs 里使用事件
最后,我们在 Program.cs
中创建发布者和订阅者实例,并订阅和触发事件,留意代码中的注释
using EventSample;// 创建发布者和订阅者实例
EventPublisher publisher = new EventPublisher();
EventSubscriber subscriber = new EventSubscriber();// 订阅事件,将订阅者的处理方法绑定到发布者的事件
publisher.CustomEvent += subscriber.HandleEvent;// 触发事件,传递消息给订阅者处理
publisher.TriggerEvent();// 取消订阅事件
publisher.CustomEvent -= subscriber.HandleEvent;
-
运行程序,可以看到事件被触发,如下图:
参考链接
轻松掌握 C# 事件:从创建到使用
特此记录
anlog
2024年12月22日
相关文章:
c#自定义事件
自定义事件类 定义一个自定义事件参数类 为了传递更多的信息,我们定义一个自定义的事件参数类 public class CustomEventArgs : EventArgs {public string Message { get; set; } } 3. 定义一个发布者类 接下来,我们定义一个发布者类,包含…...
【读书笔记】《论语别裁》寂寞的享受
1.内容摘要 在《论语别裁》中,第一章《学而》探讨了做学问的孤独与坚持。作者强调,真正的学者在追求知识时,必须保持“仁”与“义”的核心价值观,愿意为自己的信念与理想而牺牲。他以孔子为例,描绘了孔子一生的寂寞与…...

Oracle筑基篇-调度算法-LRU的引入
常见的调度算法 图1 调度算法思维导图 一、LRU算法的典型使用场景 1. 操作系统中的页面置换 什么时候用到页面置换算法呢? 当CPU发出指令需要访问某个地址时,若该地址在TLB(Translation Lookaside Buffer,快表)或页…...

单元测试-Unittest框架实践
文章目录 1.Unittest简介1.1 自动化测试用例编写步骤1.2 相关概念1.3 用例编写规则1.4 断言方法 2.示例2.1 业务代码2.2 编写测试用例2.3 生成报告2.3.1 方法12.3.2 方法2 1.Unittest简介 Unittest是Python自带的单元测试框架,适用于:单元测试、Web自动…...
linux驱动:6ull(3)自动分配设备号来创建led驱动
在 linux驱动:6ull(2)的文章代码上进行更改 步骤: 创建入口函数和出口函数定义一个设备结构体和创建一个led设备在入口函数init中添加初始化led的gpio在入口函数init中添加自动分配设备号来创建led字符设备在出口函数中取消led的…...

GM_T 0039《密码模块安全检测要求》题目
单项选择题 根据GM/T 0039《密码模块安全检测要求》,送检单位的密码模块应包括()密码主管角色。 A.一个 B.两个 C.至少一个 D.至少两个 正确答案:C 多项选择题 根据GM/T 0039《密码模块安全检测要求》,关于非入侵式安全,以下属于安全三级密码模块要求的是()。 …...

第四届电气工程与控制科学
重要信息 官网:www.ic2ecs.com 时间:2024年12月27-29日 简介 第四届电气工程与控制科学定于2024年12月27-29日在中国南京召开。主要围绕“电气工程“、”控制科学“、”机械工程“、”自动化”等主题展开,旨在为从电…...

LabVIEW在电液比例控制与伺服控制中的应用
LabVIEW作为一种图形化编程环境,广泛应用于各类控制系统中,包括电液比例控制和伺服控制领域。在这些高精度、高动态要求的控制系统中,LabVIEW的优势尤为突出。以下从多个角度探讨其应用与优势: 1. 灵活的控制架构 LabVIEW为电…...

植物大战僵尸杂交版v3.0.2最新版本(附下载链接)
B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.0.2版本!!!,有b站账户的记得要给作者三连关注一下呀! 不多废话下载链接放上: 夸克网盘链接::https://pan.quark.cn/s/5c…...
车辆重识别代码笔记12.19
1、resnet_ibn_a和resnet网络的区别 ResNet-IBN-A 是在 ResNet 基础上进行了一些改进的变种,具体来说,它引入了 Instance Batch Normalization (IBN) 的概念,这在某些任务中(如图像识别、迁移学习等)有显著的性能提升。…...

linux内核网络分层概述
在开发应用时,我们使用 socket 实现网络数据的收发。以tcp为例,server端通过 socket, bind, listen来创建服务端,然后通过 accept接收客户端连接;客户端通过 socket和 connect系统调用来创建客户端。用于数据收发的系统调用包括 s…...

H3C交换机配置 telnet 服务
使用一个交换机做成 telnet 服务, telnet 可以使用指定端口开启三层交换机, 用于与 pc 互通, 也可以使用自带的 vlan1 设置 ip 然后达到互通, 因为华三的交换机端口默认是 access 口, 默认带 vlan1 , 直接设置 vlan1 的 ip 也就可以实现互通 实现互通 互通的两种方式 设置 vl…...
江苏计算机专转本 技能Mysql知识点总结(二)
三、SQL数据操纵语言(增删改查) 1.insert 语句(增) INSERT INTO 表名 (列1, 列2, 列3) VALUES (值1, 值2, 值3); 2.Delete 语句(删) //1. DELETE FROM 表名 WHERE 条件;//2. truncate table 表名; …...

边缘智能网关助力打造建筑智慧消防物联网
随着经济社会的快速发展,为了满足民众生产、生活、消费需求,高层建筑、大型综合连体建筑持续兴建,各类火灾风险和事故也越发增加。得益于物联网的普及应用,消防监测和管理迎来数字化、智慧化转型升级。 针对各类高层、大型建筑消防…...

学习Cookie 提升
目录 Cookie 的覆盖 Cookie下的path 特点 设置Cookie 路径 实例 Cookie的最大存活时间 设置Cookie 存活时间 实例 Cookie 和session的区别 和联系 Cookie 的覆盖 当 key相同 和只要path的上级目录的路径相同,就可以被替换掉 value 值 如下图…...
OpenAI 发布会 9 天技术总结
OPEN AI 发布会总结 OpenAI 发布会 12 天技术总结Day 1: 开幕与愿景主要内容:体验方式: Day 2: GPT-4 及其突破性进展主要内容:体验方式: Day 3: GPT-4 在编程领域的突破 - Codex & Copilot主要内容:体验方式&…...
免费注册.news域名一年(今日有效)
时间紧迫,就不上图了,需要的尽快。 网址:https://www.namecheap.com/ 优惠码:FREEDOM24...

解决JIRA、Confluence用户自动注销、反复登录的问题
一、问题描述:当工作从从confluence里面打开jira的时候,在回到confluence时候,就自动退出了,需要账号密码登录重复登录,使人十分厌恶。 二、原因分析: 访问 JIRA、Confluence 或任何其他具有相同域或 IP 上…...
Oracle创建逻辑目录
Oracle 在执行逻辑备份及还原时,需要用到逻辑目录。 本文就来简单介绍一下逻辑目录相关的操作,希望对大家有所帮助。 1.登录到Oracle数据库 使用具有足够权限的数据库用户登录到Oracle数据库。通常,这需要是管理员账号,如SYS…...

【AIGC-ChatGPT进阶副业提示词】星际占卜师:探索星象能量的艺术【限时免费阅读,一天之后自动进入进阶课程】
引言 在这个数字化的时代,我们创造了一个独特的角色 —— 星际占卜师。这不仅是一个简单的运势预测工具,更是一个融合了玄学、预言和能量解读的智能向导。通过精心设计的系统提示词和独特的画境生成机制,星际占卜师能够为用户带来沉浸式的占…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...

五、jmeter脚本参数化
目录 1、脚本参数化 1.1 用户定义的变量 1.1.1 添加及引用方式 1.1.2 测试得出用户定义变量的特点 1.2 用户参数 1.2.1 概念 1.2.2 位置不同效果不同 1.2.3、用户参数的勾选框 - 每次迭代更新一次 总结用户定义的变量、用户参数 1.3 csv数据文件参数化 1、脚本参数化 …...