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

与委托的区别

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

事件是被限制了的委托

相关推荐
AI进化营-智能译站2 分钟前
ROS2 C++开发系列07-高效构建机器人决策逻辑,运算符与控制流实战
开发语言·c++·ai·机器人
winner88814 分钟前
C++ 命名空间、虚函数、抽象类、protected 权限全套通俗易懂精讲(附与 Java 对比)
java·开发语言·c++
不会编程的懒洋洋14 分钟前
C# P/Invoke 基础
开发语言·c++·笔记·安全·机器学习·c#·p/invoke
直奔標竿14 分钟前
Java开发者AI转型第二十五课!Spring AI 个人知识库实战(四)——RAG来源追溯落地,拒绝AI幻觉
java·开发语言·人工智能·spring boot·后端·spring
时空系21 分钟前
认识Rust——我的第一个程序 Rust中文编程
开发语言·后端·rust
yqcoder23 分钟前
JavaScript 柯里化:把“大餐”拆成“小炒”的艺术
开发语言·javascript·ecmascript
每天吃饭的羊29 分钟前
JSZip的使用
开发语言·javascript
qq_5895681038 分钟前
java基础学习,案例练习,即时通讯
java·开发语言·学习
Avalon71239 分钟前
Unity3D响应式渲染UI框架UniVue
游戏·ui·unity·c#·游戏引擎