Nun deklarieren Sie für das Ereignis OnPrime einen Delegaten in der Klasse. Diese Deklaration kann an einer beliebigen Stelle im Klassenmodul eingefügt werden. Beachten Sie, dass Sie nicht unbedingt einen Delegaten erstellen müssen, vor allem bei Ereignis-Methoden, deren Signatur dem integrierten System.EventHandler-Delegat entspricht. Es ist jedoch sinnvoll, für jedes spezielle Ereignis einen Delegaten zu deklarieren. In unserem Beispiel ist dies notwendig, da zu der Signatur ein Parameter (die gefundene Primzahl) hinzugefügt wird.
Hier die Deklaration für den Delegaten:
public delegate void OnPrimeEventHandler (object sender, System.EventArgs e, long num);
Weisen Sie dann den Delegaten dem Ereignis zu:
public Ereignis OnPrimeEventHandler OnPrime;
Das Klassenmodul ist nun komplett. Allerdings führt es vor der Schaffung des Codes in der Empfängerklasse noch keine sinnvollen Vorgänge aus. Wenn Sie das Projekt ausführen, dürften jedoch keine Syntaxfehler mehr vorliegen. Listing D enthält den vollständigen Code für das Klassenmodul.
Der Ereignis-Handler
Kehren wir nur zu der Empfängerklasse zurück, die zufällig eine Form-Klasse ist (was, wie bereits erwähnt, nicht unbedingt der Fall sein muss), um einen Ereignis-Handler hinzuzufügen. Dieser sieht wie folgt aus:
private void Class1_OnPrime (object sender, System.EventArgs e, long theNum){ }
Benachrichtigung an die auslösende Klasse
Fügen Sie nun eine Benachrichtigung zu der Instanz des Klassenmoduls hinzu, so dass der im Ereignis-Handler befindliche Code verarbeitet wird, wenn das Ereignis ausgelöst wurde. Zuvor muss jedoch erst eine Instanz der Class1 in der Form-Klasse eingerichtet werden. Erstellen Sie anschließend eine Schaltfläche mit der Bezeichnung btnDoPrimeThing. Dann fügen Sie den im Klick-Ereignis der Schaltfläche auszuführenden Code ein und zeigen den Rest in einem mehrzeiligen Textfeld an.
Listing E zeigt den Code für das Klick-Ereignis, der eine Instanz von Class1 erstellt und das Ereignis in der Klasse anweist, den Ereignis-Handler zu benachrichtigen, wenn das Ereignis ausgelöst wird.
Neueste Kommentare
Noch keine Kommentare zu Erstellen von speziellen Ereignissen in C#
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.