Laden...

Event auslösen

Erstellt von hauptmann vor 20 Jahren Letzter Beitrag vor 20 Jahren 5.633 Views
H
hauptmann Themenstarter:in
704 Beiträge seit 2003
vor 20 Jahren
Event auslösen

Hi!

wie kann ich ein Event auslösen, z.B. wenn eine Funktion meiner Klasse aufgerufen wurde

i

[last.fm](http://www.last.fm/user/hauptmanAlpha/)
V
842 Beiträge seit 2003
vor 20 Jahren

Es empfiehlt sich ereignisauslösenden Code in einer Methode zu kapseln. Überlicherweise hat eine solche Methode einen nach dem Muster On<Ereignis> gebildeten Namen:

protected void OnStrikeout()
{
    EventArgs args = new EventArgs();
    if(OnStrikeoutHandler != null)
        OnStikeoutHandler(this, args);
}

Es empfiehlt sich den Code welcher das Ereignis auslöst durch umgebende try-, catch- und finally-Blöcke zu sichern.

Ansonsten guck mal hier, ist von einem IA meiner Schule, gut beschrieben:
http://stud.fh-wedel.de/~ia4415/eigenschaften.html#ereignisse

Code-Hacker

P
939 Beiträge seit 2003
vor 20 Jahren

Dein Code ist nicht so prall, Code-Hacker. Du erklärst es richtig, machst es selbst dann aber wieder anders.

Dein Ereignis nennst du OnStrikeoutHandler, warum nicht einfach Strikeout? Außerdem erzeugst du die EventArgs vor der if-Abfrage. D.h. die Instanzierung findet immer statt, auch, wenn das Ereignis gar nicht gesendet wird. Und statt new EventArgs() benutzt man EventArgs.Empty. Da EventArgs keine Daten beinhaltet, ist es kein Problem immer das selbe Objekt zu verwenden.

V
842 Beiträge seit 2003
vor 20 Jahren

Der Code ist aus dem Buch "Visual C# .NET - Entwicklerbuch" abgetippt. 😁
Ich hatte zwar noch in ganz langes Beispiel auch mit ner Klasse hätte ich auch posten können wie mir gerade einfällt, da ich das Buch ja als e-Book habe... 8o

Code-Hacker