C# 事件知识文档
C# 事件知识文档
概述
在 C# 中,事件(Event) 是一种特殊的机制,它基于委托实现,用于支持发布-订阅模式。事件允许对象在发生特定操作时通知其他对象,而无需直接引用这些对象。这种机制非常适合于实现诸如用户界面交互、状态变化通知等场景。
核心概念
- 发布者(Publisher):定义和触发事件的对象。
- 订阅者(Subscriber):注册并响应事件的对象。
- 事件处理器(EventHandler):当事件被触发时执行的代码块。
事件的工作流程
- 定义事件:在发布者类中定义一个事件。
- 触发事件:在适当的时候触发该事件。
- 订阅事件:订阅者通过订阅事件来接收通知,并提供事件处理器。
- 处理事件:当事件被触发时,所有已注册的事件处理器都会被执行。
事件的思维导图
事件的基本语法
定义事件
public delegate void MyEventHandler(object sender, EventArgs e);
public event MyEventHandler MyEvent;
这里,MyEventHandler
是一个委托类型,MyEvent
是基于此委托类型的事件。
触发事件
使用空合并运算符简化触发事件的代码:
MyEvent?.Invoke(this, EventArgs.Empty);
订阅事件
通过 +=
运算符订阅事件,并提供相应的事件处理器:
publisher.MyEvent += HandleMyEvent;void HandleMyEvent(object sender, EventArgs e)
{Console.WriteLine("Event triggered!"