事件的基本概念和用法
-
声明事件:
事件在发布者类中声明,通常使用event
关键字和委托类型。在这个例子中,
MyEvent
是一个事件,它使用MyEventHandler
委托类型。OnMyEvent
方法是一个受保护的方法,用于触发事件。使用?.Invoke
是为了避免在没有订阅者时调用事件导致的空引用异常。 -
定义事件参数:
事件通常与一些数据相关联,这些数据通过事件参数类传递。事件参数类通常继承自EventArgs
类。 -
订阅事件:
订阅者通过+=操作符订阅事件,并通过-=操作符取消订阅。
事件的特点
- 封装:事件封装了委托的调用,使得外部代码不能直接调用委托,只能通过事件机制来触发。
- 灵活性:事件允许在发布者和订阅者之间实现松耦合,从而提高了代码的模块化和可重用性。
- 安全性:通过事件机制,可以避免因直接调用委托而导致的潜在问题,如空引用异常。