c#中的事件

事件

事件是基于委托的

关键字:event

使用

c# 复制代码
namespace ConsoleApp;

// 委托 delegate 可以放在类外面,事件 event 不可以。
public delegate double CalculateFunction(double x, double y);

class Program
{

    // 定义事件
    public static event CalculateFunction calFuncEvent;
    
    static double Add(double x, double y) => x + y;
    
    // 事件处理程序 Test3
    static double Test3(double x, double y)
    {
        Console.WriteLine($"事件实现 Add >_<");
        return Add(x, y);
    }
    
    static void Main(string[] args)
    {
        // 实例化委托(订阅)
        calFuncEvent += Test3;
        // 取消订阅
        // calFuncEvent -= Test3;
        
        // 激活事件
        calFuncEvent?.Invoke(12, 34);
    }
}

与委托的区别

委托是类型,事件是类型成员

事件是被限制了的委托

相关推荐
一个网络学徒3 小时前
python5
java·服务器·前端
workflower3 小时前
业务需求-假设场景
java·数据库·测试用例·集成测试·需求分析·模块测试·软件需求
Dimpels3 小时前
CANN ops-nn 算子解读:AIGC 批量生成中的 Batch 处理与并行算子
开发语言·aigc·batch
blueSatchel3 小时前
U-Boot载入到DDR过程的代码分析
linux·开发语言·u-boot
专注VB编程开发20年3 小时前
vb.net datatable新增数据时改用数组缓存
java·linux·windows
(>_<)3 小时前
java minio 分片上传工具类与测试demo
java·minio·分片上传
不想打工的码农3 小时前
MyBatis-Plus多数据源实战:被DBA追着改配置后,我肝出这份避坑指南(附动态切换源码)
java·后端
无小道3 小时前
QT——QFIie和QFileInfo文件类
开发语言·qt·命令模式
Coder_Boy_4 小时前
Deeplearning4j+ Spring Boot 电商用户复购预测案例
java·人工智能·spring boot·后端·spring
踢足球09294 小时前
寒假打卡:2026-2-7
java·开发语言·javascript