当前位置: 首页 > article >正文

c#自定义事件

自定义事件类

 定义一个自定义事件参数类

为了传递更多的信息,我们定义一个自定义的事件参数类

public class CustomEventArgs : EventArgs
{
    public string Message { get; set; }
}
3. 定义一个发布者类

接下来,我们定义一个发布者类,包含一个事件和一个触发事件的方法

public class EventPublisher
{
    // 声明一个事件,使用自定义的委托类型
    public event EventHandler<CustomEventArgs> CustomEvent;

    // 触发事件的方法
    public void TriggerEvent()
    {
        // 触发事件时传递自定义参数
        CustomEvent?.Invoke(this, new CustomEventArgs { Message = "事件被触发!" });
    }
}
  1. 定义一个订阅者类

然后,我们定义一个订阅者类,它的作用是处理事件,包含一个处理事件的方法

public class EventSubscriber
{
    // 事件处理方法
    public void HandleEvent(object sender, CustomEventArgs e)
    {
        Console.WriteLine($"接收到事件消息:{e.Message}");
    }
}
  1. 在 Program.cs 里使用事件

最后,我们在 Program.cs 中创建发布者和订阅者实例,并订阅和触发事件,留意代码中的注释

using EventSample;

// 创建发布者和订阅者实例
EventPublisher publisher = new EventPublisher();
EventSubscriber subscriber = new EventSubscriber();

// 订阅事件,将订阅者的处理方法绑定到发布者的事件
publisher.CustomEvent += subscriber.HandleEvent;

// 触发事件,传递消息给订阅者处理
publisher.TriggerEvent();

// 取消订阅事件
publisher.CustomEvent -= subscriber.HandleEvent;
  1. 运行程序,可以看到事件被触发,如下图:

参考链接

轻松掌握 C# 事件:从创建到使用

特此记录

anlog

2024年12月22日


http://www.kler.cn/a/454105.html

相关文章:

  • 2023年软件产业报告|2023年我国软件业经济运行情况及未来发展趋势预期
  • 【论文阅读笔记】Scalable, Detailed and Mask-Free Universal Photometric Stereo
  • 数据库系统概论
  • ctfshow-web入门-文件包含(web82-web86)条件竞争实现session会话文件包含
  • Llama3.370B超越GPT-4o和Claude3.5 Sonnet
  • 从随机生成到深度学习:使用DCGAN和CycleGAN生成图像的实战教程
  • Android 开发中自定义Toast
  • Metricbeat安装教程——Linux——Metricbeat监控ES集群
  • 从安全角度看 SEH 和 VEH
  • 软件测试之Android-sdk环境搭建
  • 网络安全top国际会议
  • C#数学相关开发性能优化方法
  • [计算机网络]RIP协议
  • CMake 构建项目并整理头文件和库文件
  • 设计一个监控摄像头物联网IOT(webRTC、音视频、文件存储)
  • ios按键精灵自动化的脚本教程:自动点赞功能的实现
  • 几个网络故障排除案例
  • 【mysql】MVCC及实现原理
  • 替代传统FTP传输,镭速大数据传输系统实现安全高效数据流转!
  • 0/1 分数规划