跳转到主内容
极星编程网:以代码为星,赴技术山海!

C# 事件和EventHandler怎么用?

大家好,我是苏承栈。今天我们来聊聊C#中的事件和EventHandler,这可是C#中处理事件的核心机制。如果你在编程过程中遇到过需要处理事件的情况,这篇文章可能会帮到你。

什么是事件和EventHandler?

事件接受与发送是通过委托来实现的,所以在学习事件之前,一定要先了解委托。简单来说,事件就是对象之间的一种通信方式,而EventHandler则是处理这些事件的函数。

事件管理

我们先来创建一个事件管理器。其实,事件管理器就是一个委托,但在创建时需要添加关键字event。下面是一个简单的示例:

public delegate void EventManager();
class EventClass
{
private static EventClass _instance;
public static EventClass Instance
{
get
{
if (_instance == null)
_instance = new EventClass();
return _instance;
}
}

// 创建一个事件管理对象
private event EventManager eventManager;
public void AddEventListener(EventManager arge)
{
eventManager += arge;
}

public void RemoveEventListener(EventManager arge)
{
eventManager -= arge;
}

public void DispatchEvent()
{
eventManager();
}
}

这里我们创建了一个委托类型EventManager,然后在EventClass类中创建了添加事件的方法AddEventListener、移除监听事件RemoveEventListener和分发事件DispatchEvent。

订阅和触发事件

当订阅者监听事件后,就会去调用AddEventListener函数。例如:

class EventClass1
{
public void PrintLog()
{
Console.WriteLine(

相关文章