请描述在 C# 中,事件订阅与取消订阅的操作方式,并说明其背后的机制。
考察说明
考察对 C# 事件机制的理解及实际操作能力。
回答思路
- 【回答框架 1】事件基于委托,使用 event 关键字声明,本质是受限的委托字段。订阅使用 += 操作符,取消使用 -= 操作符。
- 【回答框架 2】事件只能在声明类内部触发,外部不能直接调用,保证了封装性。
- 【回答框架 3】多播委托允许一个事件绑定多个处理方法,按顺序执行。
- 【回答框架 4】推荐使用标准事件模式,使用 EventHandler 或自定义委托,并注意线程安全。
- 【关键点 1】使用 += 订阅,-= 取消订阅。
- 【关键点 2】事件只能由声明类内部触发。
- 【关键点 3】事件基于多播委托,支持多个处理方法。
- 【易错点 1】如果未取消订阅,可能导致内存泄漏。
- 【易错点 2】线程安全需要额外处理。