C# 中的事件(Event)是一种特殊的委托(delegate)类型,用于实现发布者-订阅者模式。它允许一个类在特定的情况下通知其他类或对象,以便它们可以执行相应的操作。以下是一个简单的示例,演示了如何在 C# 中使用事件:
using System;

// 定义事件发布者类
public class Publisher
{
    // 定义委托类型
    public delegate void MyEventHandler(object sender, EventArgs e);

    // 声明事件
    public event MyEventHandler MyEvent;

    // 触发事件的方法
    public void RaiseEvent()
    {
        Console.WriteLine("触发事件");
        // 检查是否有订阅者,并调用事件
        MyEvent?.Invoke(this, EventArgs.Empty);
    }
}

// 定义事件订阅者类
public class Subscriber
{
    // 事件处理方法
    public void OnEvent(object sender, EventArgs e)
    {
        Console.WriteLine("收到事件通知");
    }
}

class Program
{
    static void Main()
    {
        // 创建事件发布者对象
        Publisher publisher = new Publisher();

        // 创建事件订阅者对象
        Subscriber subscriber = new Subscriber();

        // 将订阅者的事件处理方法绑定到发布者的事件上
        publisher.MyEvent += subscriber.OnEvent;

        // 触发事件
        publisher.RaiseEvent();

        Console.ReadLine();
    }
}

在这个示例中,Publisher 类包含一个事件 MyEvent,该事件的类型是 MyEventHandler 委托。RaiseEvent 方法用于触发事件,并检查是否有订阅者。Subscriber 类包含一个处理事件的方法 OnEvent。

在 Main 方法中,创建了 Publisher 和 Subscriber 对象,然后将订阅者的事件处理方法绑定到发布者的事件上。当触发事件时,订阅者会收到通知并执行相应的操作。


转载请注明出处:http://www.zyzy.cn/article/detail/6366/C#