C# 如何释放匿名事件处理程序资源?

C# 如何释放匿名事件处理程序资源?,c#,c#-4.0,C#,C# 4.0,假设我有一个加载了事件的ViewModel。我想在连接处理程序后立即释放它。这意味着只联系一次。我想以以下方式使用匿名: EventHandler handler = (s, e) => { //...... vm.Loaded -= handler;; }; vm.Loaded += handler; 它不起作用。我不想单独使用命名处理程序。这种情况的解决方案是什么?如果您首先声明EventHandler,它应该可以工作: EventHandle

假设我有一个加载了事件的ViewModel。我想在连接处理程序后立即释放它。这意味着只联系一次。我想以以下方式使用匿名:

EventHandler handler = (s, e) =>
{
   //......             
   vm.Loaded -= handler;;
};

vm.Loaded += handler;

它不起作用。我不想单独使用命名处理程序。这种情况的解决方案是什么?

如果您首先声明EventHandler,它应该可以工作:

EventHandler handler = null;
handler = (s, e) => 
{    
    //......                 
    vm.Loaded -= handler;
};