取消在C#中注册简写/内联事件

Ste*_*Pet 0 c#

可能重复:
如何取消注册"匿名"事件处理程序

在我使用的c#方法中

this.Loaded+=(sender,e)=>{ my code }; 
Run Code Online (Sandbox Code Playgroud)

用于在加载时执行代码.但我的问题是我不知道如何取消注册这个链式事件.我尝试过类似的东西

this.Loaded-=(sx,ex)=>{}; 
Run Code Online (Sandbox Code Playgroud)

但事件并非未注册.任何人请帮我解决这个问题.

Raf*_*fal 6

此代码使用附加到事件的方法创建匿名类型,因此要分离此事件,您需要提供相同的方法而不是新方法.

试试这个:

EventHandler handler = (sender,e)=>{...};
Loaded += handler;
Loaded -= handler;
Run Code Online (Sandbox Code Playgroud)

因为附加到this.事件通常有很好的替代品

override OnLoaded(EventArgs args)
Run Code Online (Sandbox Code Playgroud)