Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# event

作者:颠峰神射   发布日期:2025-09-12   浏览:41

// 定义一个事件发布者类
public class Publisher
{
    // 声明一个事件,使用 EventHandler 委托类型
    public event EventHandler MyEvent;

    // 触发事件的方法
    protected virtual void OnMyEvent(EventArgs e)
    {
        // 检查是否有订阅者
        MyEvent?.Invoke(this, e);
    }

    // 模拟事件触发的公共方法
    public void DoSomething()
    {
        Console.WriteLine("Publisher is doing something...");
        // 触发事件
        OnMyEvent(EventArgs.Empty);
    }
}

// 定义一个事件订阅者类
public class Subscriber
{
    // 构造函数中订阅事件
    public Subscriber(Publisher pub)
    {
        pub.MyEvent += HandleMyEvent;
    }

    // 事件处理方法
    private void HandleMyEvent(object sender, EventArgs e)
    {
        Console.WriteLine("Subscriber received the event!");
    }
}

// 测试代码
public class Program
{
    public static void Main(string[] args)
    {
        Publisher pub = new Publisher();
        Subscriber sub = new Subscriber(pub);

        // 模拟事件触发
        pub.DoSomething();
    }
}

解释说明:

  1. Publisher 类:这是一个事件发布者类,它声明了一个名为 MyEvent 的事件。OnMyEvent 方法用于触发该事件。DoSomething 方法模拟了某个操作完成后触发事件的行为。
  2. Subscriber 类:这是一个事件订阅者类,它在构造函数中订阅了 Publisher 类的 MyEvent 事件,并定义了事件处理方法 HandleMyEvent
  3. Program 类:这是主程序类,创建了 PublisherSubscriber 对象,并调用 PublisherDoSomething 方法来触发事件。

通过这种方式,当 Publisher 类中的某个操作完成时,它会通知所有订阅了其事件的对象(如 Subscriber),从而实现了一种松耦合的通信机制。

上一篇:c#上位机开发

下一篇:c# out

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

c#网络编程

c# rectangle

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站