新闻详情

新闻详情

首页 / 资讯中心 / 详情

17.C# —— 事件

发布时间:2026/6/5 20:28:31
17.C# —— 事件
目录一、事件基础概念1. 系统默认事件EventHandler二、自定义参数事件实战计算器加法完成事件三、知识点总结一、事件基础概念事件依托委托实现遵循发布 - 订阅设计模式发布方类内部声明事件满足业务条件时触发事件订阅方外部通过绑定处理方法、-取消订阅关键特性被event修饰不能直接用赋值覆盖全部订阅相比普通多播委托更安全。1. 系统默认事件EventHandler.NET 内置EventHandler委托固定签名void 方法(object sender, EventArgs e)适用于无自定义参数的事件。namespace _3事件 { internal class Program { //语法event 委托类型 事件名称 public static event EventHandler MyClick; static void Main(string[] args) { //绑定普通方法 MyClick new EventHandler(F1); //绑定Lambda表达式 MyClick (sender, e) { Console.WriteLine(lambda表达式); }; //触发执行事件 MyClick?.Invoke(null,null); } static void F1(object sender,EventArgs s) { Console.WriteLine(F1方法); } } }二、自定义参数事件实战计算器加法完成事件需求计算器执行加法完毕后触发事件订阅端获取两个加数与运算和。实现三步自定义委托 → 基于委托定义事件 → 业务方法中安全触发事件namespace _4例子 { //发布类定义委托、事件、加法逻辑 public class Calc { //1.自定义委托匹配事件处理方法参数格式 public delegate void AddDel(int a, int b, int sum); //2.声明事件 public event AddDel Finished; public void Add(int a,int b) { int sum a b; //3.空安全触发事件非空才调用 Finished?.Invoke(a,b,sum); } } //订阅端 internal class Program { static void Main(string[] args) { Calc c new Calc(); //订阅绑定事件回调方法 c.Finished F1; c.Add(10, 20); c.Add(30, 20); } //事件回调方法 static void F1(int a,int b,int c) { Console.WriteLine($a的值为{a},b的值为{b},c的值为{c}); } } }三、知识点总结事件 event 委托类型是封装后的安全委托绑定解绑只能订阅、-退订禁止外部清空两种事件写法内置EventHandler固定参数、自定义委托自定义参数触发规范使用事件名?.Invoke()做空判断避免空引用异常。
网站建设 高端定制 企业官网