2010-02-05 9 views

Antwort

4

Es hängt davon ab, was Sie erreichen möchten. Wenn Sie über mehrere Ereignishandler verfügen, die während der Lebensdauer eines Formulars/Objekts Ereignisse für verschiedene Steuerelemente verarbeiten müssen, ist WithEvents and Handles der einfachste Weg. Die Sprache wird all die schmutzige Arbeit für Sie in Bezug auf die Einrichtung der Veranstaltung tun. Auf der anderen Seite sind AddHandler und RemoveHandler bessere Optionen, wenn Sie dazu neigen, sich während der Lebensdauer des Formulars von Ereignissen zu trennen.

1

Hängt davon ab, was Sie wirklich tun, wenn Sie Event-Handler dynamisch anhängen/loslösen wollen, dann ist die Verwendung von AddHandler/RemoveHandler der richtige Weg, ansonsten ist die Verwendung von Handles völlig in Ordnung.

4

Ich bevorzuge WithEvents/Handles in Situationen, wo es anwendbar ist, weil es besser ausdrückt, was der Code tun soll. Eine Einschränkung mit "WithEvents/Handles" ist, dass jedes Objekt, das Ereignisse von einem langlebigeren Objekt empfängt, IDisposable implementieren sollte und alle seine WithEvents-Variablen auf Nothing setzen sollte, wenn es entsorgt wird, um sicherzustellen, dass alle Ereignisse nicht verbunden sind. Das Entfernen von Ereignissen bei der Verwendung von AddHandler/RemoveHandler ist genauso notwendig, aber vielleicht offensichtlicher. Wenn Sie WithEvents verwenden, ist es etwas leichter zu vergessen.

Übrigens, ich kenne keine Möglichkeit, alle WithEvents-Variablen automatisch auf Nothing zu setzen. Es scheint eine häufig genug Anforderung zu sein, aber aus irgendeinem Grund hat Microsoft ein solches Feature in VB nicht aufgenommen.

Verwandte Themen