c#自定义事件

发布于:2025-02-11 ⋅ 阅读:(102) ⋅ 点赞:(0)

自定义事件类

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

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

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日


网站公告

今日签到

点亮在社区的每一天
去签到