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

与委托的区别

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

事件是被限制了的委托

相关推荐
浮游本尊几秒前
Java学习第19天 - 分布式缓存与Redis高级应用
java
bemyrunningdog8 分钟前
DTO与POJO:核心差异与最佳实践
java
en-route8 分钟前
深入理解 MDC(Mapped Diagnostic Context):日志记录的利器
java·log4j
枫叶丹412 分钟前
【Qt开发】显示类控件(一)-> QLabel
开发语言·qt
Python私教25 分钟前
源滚滚Rust全栈班v1.02 无符号整数详解
开发语言·后端·rust
一叶飘零_sweeeet32 分钟前
SpringBoot 数据脱敏实战: 构建企业级敏感信息保护体系
java·spring boot·数据安全
yBmZlQzJ41 分钟前
PyQt5 修改标签字体和颜色的程序
开发语言·python·qt
float_六七1 小时前
Java Stream流:从入门到精通
java·windows·python
青云交1 小时前
Java 大视界 -- 基于 Java 的大数据分布式存储在智慧城市时空大数据管理与应用中的创新实践(408)
java·hdfs·flink·智慧城市·hbase·java 分布式存储·时空大数据
赶飞机偏偏下雨1 小时前
【Java笔记】单例模式
java·笔记·单例模式