Hi!
wie kann ich ein Event auslösen, z.B. wenn eine Funktion meiner Klasse aufgerufen wurde
i
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
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.
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