当前位置: 首页 > 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日

相关文章:

c#自定义事件

自定义事件类 定义一个自定义事件参数类 为了传递更多的信息&#xff0c;我们定义一个自定义的事件参数类 public class CustomEventArgs : EventArgs {public string Message { get; set; } } 3. 定义一个发布者类 接下来&#xff0c;我们定义一个发布者类&#xff0c;包含…...

【读书笔记】《论语别裁》寂寞的享受

1.内容摘要 在《论语别裁》中&#xff0c;第一章《学而》探讨了做学问的孤独与坚持。作者强调&#xff0c;真正的学者在追求知识时&#xff0c;必须保持“仁”与“义”的核心价值观&#xff0c;愿意为自己的信念与理想而牺牲。他以孔子为例&#xff0c;描绘了孔子一生的寂寞与…...

Oracle筑基篇-调度算法-LRU的引入

常见的调度算法 图1 调度算法思维导图 一、LRU算法的典型使用场景 1. 操作系统中的页面置换 什么时候用到页面置换算法呢&#xff1f; 当CPU发出指令需要访问某个地址时&#xff0c;若该地址在TLB&#xff08;Translation Lookaside Buffer&#xff0c;快表&#xff09;或页…...

单元测试-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自带的单元测试框架&#xff0c;适用于&#xff1a;单元测试、Web自动…...

linux驱动:6ull(3)自动分配设备号来创建led驱动

在 linux驱动&#xff1a;6ull&#xff08;2&#xff09;的文章代码上进行更改 步骤&#xff1a; 创建入口函数和出口函数定义一个设备结构体和创建一个led设备在入口函数init中添加初始化led的gpio在入口函数init中添加自动分配设备号来创建led字符设备在出口函数中取消led的…...

GM_T 0039《密码模块安全检测要求》题目

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

第四届电气工程与控制科学

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

LabVIEW在电液比例控制与伺服控制中的应用

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

植物大战僵尸杂交版v3.0.2最新版本(附下载链接)

B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.0.2版本&#xff01;&#xff01;&#xff01;&#xff0c;有b站账户的记得要给作者三连关注一下呀&#xff01; 不多废话下载链接放上&#xff1a; 夸克网盘链接&#xff1a;&#xff1a;https://pan.quark.cn/s/5c…...

车辆重识别代码笔记12.19

1、resnet_ibn_a和resnet网络的区别 ResNet-IBN-A 是在 ResNet 基础上进行了一些改进的变种&#xff0c;具体来说&#xff0c;它引入了 Instance Batch Normalization (IBN) 的概念&#xff0c;这在某些任务中&#xff08;如图像识别、迁移学习等&#xff09;有显著的性能提升。…...

linux内核网络分层概述

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

H3C交换机配置 telnet 服务

使用一个交换机做成 telnet 服务, telnet 可以使用指定端口开启三层交换机, 用于与 pc 互通, 也可以使用自带的 vlan1 设置 ip 然后达到互通, 因为华三的交换机端口默认是 access 口, 默认带 vlan1 , 直接设置 vlan1 的 ip 也就可以实现互通 实现互通 互通的两种方式 设置 vl…...

江苏计算机专转本 技能Mysql知识点总结(二)

三、SQL数据操纵语言&#xff08;增删改查&#xff09; 1.insert 语句&#xff08;增&#xff09; INSERT INTO 表名 (列1, 列2, 列3) VALUES (值1, 值2, 值3); 2.Delete 语句&#xff08;删&#xff09; //1. DELETE FROM 表名 WHERE 条件;//2. truncate table 表名; …...

边缘智能网关助力打造建筑智慧消防物联网

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

学习Cookie 提升

目录 Cookie 的覆盖​​​​​​​ Cookie下的path 特点 设置Cookie 路径 实例 Cookie的最大存活时间 设置Cookie 存活时间 实例 Cookie 和session的区别 和联系 Cookie 的覆盖 当 key相同 和只要path的上级目录的路径相同&#xff0c;就可以被替换掉 value 值 如下图…...

OpenAI 发布会 9 天技术总结

OPEN AI 发布会总结 OpenAI 发布会 12 天技术总结Day 1: 开幕与愿景主要内容&#xff1a;体验方式&#xff1a; Day 2: GPT-4 及其突破性进展主要内容&#xff1a;体验方式&#xff1a; Day 3: GPT-4 在编程领域的突破 - Codex & Copilot主要内容&#xff1a;体验方式&…...

免费注册.news域名一年(今日有效)

时间紧迫&#xff0c;就不上图了&#xff0c;需要的尽快。 网址&#xff1a;https://www.namecheap.com/ 优惠码&#xff1a;FREEDOM24...

解决JIRA、Confluence用户自动注销、反复登录的问题

一、问题描述&#xff1a;当工作从从confluence里面打开jira的时候&#xff0c;在回到confluence时候&#xff0c;就自动退出了&#xff0c;需要账号密码登录重复登录&#xff0c;使人十分厌恶。 二、原因分析&#xff1a; 访问 JIRA、Confluence 或任何其他具有相同域或 IP 上…...

Oracle创建逻辑目录

Oracle 在执行逻辑备份及还原时&#xff0c;需要用到逻辑目录。 本文就来简单介绍一下逻辑目录相关的操作&#xff0c;希望对大家有所帮助。 ‌1.登录到Oracle数据库‌ 使用具有足够权限的数据库用户登录到Oracle数据库。通常&#xff0c;这需要是管理员账号&#xff0c;如SYS…...

【AIGC-ChatGPT进阶副业提示词】星际占卜师:探索星象能量的艺术【限时免费阅读,一天之后自动进入进阶课程】

引言 在这个数字化的时代&#xff0c;我们创造了一个独特的角色 —— 星际占卜师。这不仅是一个简单的运势预测工具&#xff0c;更是一个融合了玄学、预言和能量解读的智能向导。通过精心设计的系统提示词和独特的画境生成机制&#xff0c;星际占卜师能够为用户带来沉浸式的占…...

MTK手机屏显干扰全解析:亮灭屏、射频干扰与TP失灵,我是如何用PLL_CLOCK和Porch参数解决的

MTK手机屏显干扰全解析&#xff1a;亮灭屏、射频干扰与TP失灵实战解决方案 引言&#xff1a;当屏幕开始"跳舞"——移动设备显示异常背后的复杂世界 那块6.5英寸的OLED屏幕又一次在通话过程中突然闪烁起来&#xff0c;像被无形的幽灵操控着。作为MTK平台驱动开发工程师…...

Turbo Boost Switcher设备适配完全指南:从系统要求到机型验证全流程

Turbo Boost Switcher设备适配完全指南&#xff1a;从系统要求到机型验证全流程 【免费下载链接】Turbo-Boost-Switcher Turbo Boost disabler / enable app for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/tu/Turbo-Boost-Switcher Turbo Boost Switcher是一款…...

Fish 4.6发布,命令行工具迎来新升级

近日&#xff0c;基于 Rust 语言开发的现代化交互式 Shell Fish 4.6 正式发布。它以智能提示和友好体验著称&#xff0c;此次更新带来细节优化&#xff0c;支持 systemd 环境变量&#xff0c;提升与 Linux 系统集成度。深度集成 systemd2024 年起&#xff0c;systemd 引入三个用…...

从v4l2-ctl命令到media拓扑:手把手教你调试RK3568上的OV8858摄像头图像

RK3568平台OV8858摄像头深度调试实战&#xff1a;从硬件链路到图像优化的全流程解析 当你在RK3568平台上调试OV8858摄像头时&#xff0c;是否遇到过这样的场景&#xff1a;设备树配置看似正确&#xff0c;但摄像头输出的图像却出现花屏、颜色异常或干脆没有信号&#xff1f;作为…...

Claude技能开发实战指南:从入门到精通的认知升级路径

Claude技能开发实战指南&#xff1a;从入门到精通的认知升级路径 【免费下载链接】awesome-claude-skills A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-…...

立创·地阔星开发板开箱测评:除了点灯,STM32F103C8T6还能怎么玩?(附资源下载与避坑指南)

立创地阔星开发板深度探索&#xff1a;从开箱到创意项目实战 拆开快递包装的那一刻&#xff0c;这块蓝色PCB板安静地躺在防静电袋里——这就是最近在创客圈备受关注的立创地阔星开发板。作为一款基于STM32F103C8T6芯片的高性价比开发平台&#xff0c;它不仅适合初学者入门&…...

鸿蒙应用开发实战:手把手教你封装一个可复用的音乐播放器管理类(ArkTS版)

鸿蒙应用开发实战&#xff1a;构建高可复用的音乐播放器管理类&#xff08;ArkTS版&#xff09; 在鸿蒙应用开发中&#xff0c;音频播放功能是许多应用的核心需求。本文将深入探讨如何设计一个健壮、可复用的音乐播放器管理类&#xff0c;采用ArkTS语言实现&#xff0c;帮助开发…...

Janus-Pro-7B开发者案例:基于7860 Web UI构建内部AI知识助手

Janus-Pro-7B开发者案例&#xff1a;基于7860 Web UI构建内部AI知识助手 1. 项目背景与价值 企业内部知识管理一直是个头疼的问题。各种文档、图片、报告散落在不同系统中&#xff0c;员工想要快速找到需要的信息往往需要花费大量时间。传统的搜索工具只能基于文字匹配&#…...

华为交换机MAC地址漂移检测与风暴抑制联动配置指南

1. 华为交换机MAC地址漂移检测原理与实战 刚接触网络运维时&#xff0c;第一次遇到MAC地址漂移报警简直一头雾水。后来才发现&#xff0c;这其实是交换机在提醒我们&#xff1a;"兄弟&#xff0c;你的网络里可能有环路&#xff01;" MAC地址漂移的本质是同一个MAC地址…...

某循环流化床锅炉设计【论文+ CAD图纸+翻译】

循环流化床锅炉作为高效清洁燃烧技术的代表&#xff0c;其设计需兼顾热效率、污染物控制与运行稳定性。论文部分通过系统分析流体力学、传热学及燃烧学原理&#xff0c;构建了锅炉本体结构、受热面布置与气固两相流场优化的理论模型。针对不同煤种特性&#xff0c;重点探讨了循…...