Anonyme Methoden in C# 2.0 verwenden

Wie bei benannten Methoden können auch mehrere anonyme Methoden mit demselben Delegaten assoziiert werden. Außerdem ist es möglich, einem Delegaten eine anonyme und eine benannte Methode zuzuordnen. Das kann in vielen Situationen nützlich sein – zum Beispiel beim Hinzufügen eines einfachen Steuerungsprogramms zu einem Tastendruck-Ereignis.

Der folgende Code zeigt einen Delegaten, dem sowohl eine anonyme als auch eine benannte Methode zugeordnet sind:

Beispiel 5: Anonyme Methoden als Parameter angeben

Wie benannte Methoden können auch anonyme Methoden als Parameter an eine Funktion gegeben werden. Dies ist keine Funktion, von der ein regelmäßiger Gebrauch anzunehmen ist, ein Bedarf wird aber sicher entstehen. Der folgende Code demonstriert die Funktionsweise und zudem, wie eine bezeichnete Methode als Parameter an eine Funktion weitergegeben wird:

Beispiel 6: Zugriff auf Klassenmitglieder

Das folgende ist eine Erweiterung des Beispiels 2 für den variablen Wirkungsbereich. Beispiel 6 zeigt, dass anonyme Methoden auch bezeichnete Methoden außerhalb ihres Codeblocks ausführen können, solange sich die benannte Methode dabei innerhalb des Wirkungsbereichs der anonymen Methode befindet:

Hier wird der mit der anonymen Methode assoziierte Delegat zweimal aufgerufen. Bei diesen Aufrufen gibt die Methode jeweils unterschiedliche Werte aus. Dies liegt daran, dass die äußeren Variablen, die in einer anonymen Methode verwendet werden, zum Zeitpunkt der Entstehung der anonymen Methode referenziert werden. Deswegen werden alle Veränderungen dieser Variablen widergespiegelt, wenn die anonyme Methode auf die Variablen zugreift.

Es fällt vielleicht auf, dass in diesem Fall keine Klammern hinter dem Schlüsselwort des Delegaten stehen. Wenn eine anonyme Methode keine Parameter benötigt, sind die Klammern optional.

Fazit

Der Artikel hat hoffentlich verständlich erklärt, wie man anonyme Methoden einsetzt. Sie sind sicher nicht revolutionär, aber doch ein wichtiger Schritt in der Weiterentwicklung von C#, das damit eine noch anwenderfreundlichere Programmierprache wird.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Google stopft schwerwiegende Sicherheitslöcher in Chrome 124

Zwei Use-after-free-Bugs stecken in Picture In Picture und der WebGPU-Implementierung Dawn. Betroffen sind Chrome für…

6 Tagen ago

Studie: 91 Prozent der Ransomware-Opfer zahlen Lösegeld

Die durchschnittliche Lösegeldzahlung liegt bei 2,5 Millionen Dollar. Acht Prozent der Befragten zählten 2023 mehr…

7 Tagen ago

DMA: EU stuft auch Apples iPadOS als Gatekeeper ein

Eine neue Analyse der EU-Kommission sieht vor allem eine hohe Verbreitung von iPadOS bei Business-Nutzern.…

7 Tagen ago

Chips bescheren Samsung deutlichen Gewinnzuwachs

Das operative Ergebnis wächst um fast 6 Billionen Won auf 6,64 Billionen Won. Die Gewinne…

7 Tagen ago

Chrome: Google verschiebt das Aus für Drittanbietercookies

Ab Werk blockiert Chrome Cookies von Dritten nun frühestens ab Anfang 2025. Unter anderem gibt…

1 Woche ago

BAUMLINK: Wir sind Partner und Aussteller bei der Frankfurt Tech Show 2024

Die Vorfreude steigt, denn BAUMLINK wird als Partner und Aussteller bei der Tech Show 2024…

1 Woche ago