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);
    }
}

与委托的区别

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

事件是被限制了的委托

相关推荐
醉城夜风~15 分钟前
(超详细)C++多态(Polymorphism)
开发语言·c++
这是个栗子18 分钟前
【JS代码分析】前端鉴权基础:Token 的本地存储与状态重置实践
开发语言·前端·javascript
chuan.bai27 分钟前
Java RAG 实战附录:qwen3 与 bge-m3 模型切换指南
java·人工智能·算法
wuyk55527 分钟前
7.AVL 树:第一个自平衡二叉搜索树
开发语言·stm32·单片机·算法
SL_staff29 分钟前
销售知识管理的断点分析与技术解法:从3天找话术到秒级检索
java·开源·github
荣码30 分钟前
向量数据库选型:4种方案全测了,选错重来成本最高
java·python
rannn_11132 分钟前
【力扣hot100】二叉树专题+总结
java·算法·leetcode·二叉树
SomeB1oody40 分钟前
【RustyML入门】5.3. 聚类指标
开发语言·后端·机器学习·rust·教程
OPEN-F1 小时前
Python进阶教程:Web开发入门(Flask)
开发语言·python
神仙别闹1 小时前
基于C++ MFC实现动态分区分配存储管理
开发语言·c++·mfc