Events die xte…
Mittwoch, 14. Juli 2010 | Autor: admin
Events sind klasse! Oft wird man gefragt, wie man denn Events implementiert. Man weiß, dass dazu mehrere Schritte notwendig sind, doch oft fehlt dem einem oder anderen das Kleine Zwischenstück was den Code rund macht.
Hier ist der Code der dich glücklich macht; kurz und schmerzlos:
Die Klasse “ClassWithEvent” ist die Klasse die das Event zur Verfügung stellt:
... /// /// Occurs when [the evented]. /// public event EventHandler TheEvented; /// /// Raises the event. /// /// The instance containing the event data. protected virtual void OnTheEvented(EventArgs e) { if (TheEvented != null) { TheEvented(this, e); } } private AnotherMethod() { //Mach irgendwas... OnTheEvented(EventArgs.Empty); } ...
Und hier ist die Klasse “CurrentEventUsingClass” die das Event registrieren und nutzen möchte:
... ClassWithEvent.TheEvented += CurrentEventUsingClass_TheEventedMethod; void CurrentEventUsingClass_TheEventedMethod(object sender, EventArgs e) { // was immer du möchtest...oder: throw new NotImplementedException(); } ...
Was passiert hier? Die Klasse “CurrentEventUsingClass” registriert sich auf das Event welches von der Klasse “ClassWithEvent” zur Verfügung gestellt. Innerhalb von “ClassWithEvent” wird in der Methode “AnotherMethod” die Methode OnTheEvented(…) aufgerufen. Innerhalb dieser Methode wird geprüft, ob sich irgendjemand auf das Event “TheEvented” registriert hat, falls ja, also != null, wird dieser aufgerufen. In diesem Fall wird dann also in “CurrentEventUsingClass” die Methode “CurrentEventUsingClass_TheEventedMethod(…)” aufgerufen.
Happy bubbling!
Thema: .NET > 3.0, .NET 2.0, C# | Beitrag kommentieren


