2010-09-20 6 views

Répondre

3

Vous ne pouvez pas le faire, malheureusement. Vous pouvez créer un local pour tenir le lambda si vous supprimez l'événement dans la même portée:

Binding bndTitle = this.DataBindings.Add("Text", obj, "Title"); 
EventHandler handler = (sender, e) => 
{ 
    e.Value = "asdf" + e.Value; 
}; 

bndTitle.Format += handler; 
// ... 
bndTitle.Format -= handler; 
+0

Vous ne pouvez pas « ne peut pas affecter l'expression lambda à une variable locale implicitement typée ». Il devrait être ConvertEventHandler handler = (expéditeur, e) => { e.Value = "asdf" + e.Value; }; –

+0

Et puisque vous devez lui attribuer un type, il ne peut pas être anonyme. –

+0

@Richard Hein vous avez tort, la méthode peut être anonyme mais avoir un type (être converti en délégué). L'anonymat de la méthode (lambda) signifie qu'elle ne peut pas être référencée par son nom. – Andrey

Questions connexes