Mögliche Duplizieren:
Unsubscribe anonymous method in C# How do I Unregister 'anonymous' event handlerDetach ein anonymer Eventhandler
Ok, können sagen, dass ich den folgenden Code haben:
private void AttachEvent(AwesomeObject someObject)
{
int id = GetCurrentIdValue();
someUnknownClass.SomeEvent +=() => someObject.CreateAwesomeness(id);
}
(im Wesentlichen, ich bin nur versuchen, die Notwendigkeit zu veranschaulichen, eine lokale Variable in einem Event-Handler zu verwenden vorgeschlagen in this thread). Aus Sicht des Speichermanagements kann ich mich nicht einfach von einem UnknownClass.SomeEvent lösen, da ich keinen Handle für den Handler habe. Angenommen, einigeUnknownClass ist ein Drittanbieter-Typ. Daher kann ich innerhalb dieser Klasse keinen Code hinzufügen, um das Ereignis wie vorgeschlagen intern zu trennen.
Meine Frage ist, wie vermeide ich eine Speicherlecks, während immer noch anonyme Methoden als Event-Handler verwenden können?
Sowie: http://stackoverflow.com/questions/1348150/how-doi-i-unregister-anonymous-event-handler und http://stackoverflow.com/questions/2051357/c-sharp-adding -und-entfernen-anonymous-event-handler und viele andere. – Oded
Speziell mit Lambdas, antworten Sie hier: http://Stackoverflow.com/a/1362244/1583 – Oded