避免重复注册事件处理程序基本上有两种模式:(根据此讨论:C#模式防止事件处理程序挂钩两次)
使用System.Linq命名空间,并通过调用检查事件处理程序是否已注册 GetInvocationList().Contains(MyEventHandlerMethod);
在注册之前取消注册,如下所示:
MyEvent -= MyEventHandlerMethod;
MyEvent += MyEventHandlerMethod;
Run Code Online (Sandbox Code Playgroud)我的问题是,性能方面,哪一个更好,或者它们在性能上有显着差异?