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

与委托的区别

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

事件是被限制了的委托

相关推荐
聪明的笨猪猪21 小时前
Java SE “异常处理 + IO + 序列化”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
毕设源码-赖学姐21 小时前
【开题答辩全过程】以 SpringbootVueUniapp农产品展销平台为例,包含答辩的问题和答案
java·eclipse
User_芊芊君子21 小时前
【Java ArrayList】底层方法的自我实现
java·开发语言·数据结构
敲代码的嘎仔21 小时前
牛客算法基础noob56 BFS
java·开发语言·数据结构·程序人生·算法·宽度优先
Never_Satisfied21 小时前
在JavaScript / HTML中,`onclick`事件触发多个函数
开发语言·javascript·html
GalenZhang88821 小时前
Springboot调用Ollama本地大模式
java·spring boot·后端
小蒜学长21 小时前
springboot海洋馆预约系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
ajassi200021 小时前
开源 C# 快速开发(十五)进程--windows消息
windows·开源·c#
ajassi20001 天前
开源 C# 快速开发(十三)进程--管道通讯
开发语言·开源·c#
茉莉玫瑰花茶1 天前
Qt 界面优化 --- 绘图
开发语言·数据库·qt