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

与委托的区别

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

事件是被限制了的委托

相关推荐
特种加菲猫1 小时前
哈希表的实现
开发语言·c++
C+-C资深大佬1 小时前
Python 新手学习指南
开发语言·python
123的故事1 小时前
工具分享(2)-NSmartProxy内网穿透工具。
c#·.net·nsmartproxy
小张小张爱学习1 小时前
Java基础面试题
java·开发语言
宋哥转AI1 小时前
Java后端转AI Agent:技术栈全景图与从ReAct到多Agent协作实战
java·人工智能·agent
Mr.Entropy2 小时前
ecplise 导出maven依赖jar
java·maven·jar
Drone_xjw2 小时前
Qt国际化多语言配置详解-入门到精通
开发语言·qt·命令模式
爱吃提升2 小时前
Python 多线程 threading + 多进程 multiprocessing 完整实操教程
开发语言·python
ANnianStriver2 小时前
PetLumina 05 — App 端 UI 效果应用
java·ui·ai编程
不懂的浪漫2 小时前
10|Netty native epoll 与零拷贝:从 Java NIO 再往下看一层![
java·netty·nio