Erstellen von speziellen Ereignissen in C#

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.

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

3 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

3 Tagen ago

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

3 Tagen ago

Gefährliche Anzeigen für Passwortmanager Bitwarden verbreiten Malware

Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…

4 Tagen ago

Public Cloud: Gartner erwartet 2025 weltweite Ausgaben von 723 Milliarden Dollar

Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.

4 Tagen ago

iPhone 15 ist bestverkauftes Smartphone im dritten Quartal

Apple belegt in der Statistik von Counterpoint die ersten drei Plätze. Samsungs Galaxy S24 schafft…

4 Tagen ago