C#面试题更新 2026-08-03

请说明在 C# 中事件订阅和解除订阅的具体操作方式,并解释其工作原理。

考察说明

考查对 C# 事件机制的理解和实际使用能力。

回答思路

  1. 【回答框架 1】事件基于委托,订阅使用 += 运算符将事件处理方法添加到事件的事件处理程序列表中,解除订阅使用 -= 运算符移除对应方法。
  2. 【回答框架 2】事件通常声明在类中,使用 event 关键字,外部只能通过添加或移除处理程序来访问,不能直接触发。
  3. 【回答框架 3】在类内部触发事件时使用 Invoke 或直接调用事件名,但需检查是否为空以避免空引用。
  4. 【回答框架 4】订阅和解除订阅时要注意避免内存泄漏,例如在释放对象时解除对事件的订阅。
  5. 【回答框架 5】事件的使用场景包括 UI 控件的交互响应、异步通知等。
  6. 【关键点 1】+= 用于订阅事件,-= 用于解除订阅。
  7. 【关键点 2】事件基于委托,但提供了封装性。
  8. 【关键点 3】触发事件前需检查是否为 null。
  9. 【易错点 1】忘记解除订阅可能导致内存泄漏。
  10. 【易错点 2】在多线程环境中触发事件时需注意线程安全。
  11. 【易错点 3】使用 event 关键字时,外部不能随意触发事件。