代码检查:通过匿名委托取消事件订阅
此检查会报告尝试通过新的匿名委托取消事件订阅的操作。 该取消订阅调用不会移除原始处理程序,因为新的 lambda 或匿名方法是不同的委托实例。
示例
publisher.Changed += (s, e) => Console.WriteLine("Changed");
publisher.Changed -= (s, e) => Console.WriteLine("Changed");
EventHandler handler = (s, e) => Console.WriteLine("Changed");
publisher.Changed += handler;
publisher.Changed -= handler;
快速修复
此检查没有专用的快速修复方案。 常见的修正方法是将委托实例存储起来,并在订阅和取消订阅时使用相同的变量。
2026年 5月 8日