Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

Share this Page URL
Help

Visual C# 2010: >> Einstieg für Anspruch... > Kapitel 13: Delegaten und Ereignisbe... - Pg. 233

13 13 Delegaten und Ereignisbehandlung Windows ist seit jeher ein ereignis- und nachrichtenbasiertes Betriebssystem. Eine Anwendung wartet beispielsweise auf eine Benutzereingabe, um anhand der eingegebenen Daten (oder einer Mausaktivität) eine Aktion durchzufüh- ren. Die Anwendung kann auch auf Nachrichten des Betriebssystems reagie- ren. Ist der Batterieladezustand Ihres Notebooks beispielsweise nahe dem Nullpunkt, der ICE steckdosenfrei und kein Zweitakku bei der Hand, meldet sich Windows und gibt Ihnen eine Chance, Ihre Daten zu sichern. Eng mit der Ereignisbehandlung verbunden sind die Delegaten (auch Dele- gates). Aus anderen Programmiersprachen sind sie auch als Funktions- bzw. Methodenzeiger bekannt, obwohl es sich bei den Delegaten um eine erwei- terte Form handelt, die insbesondere typsicher ist. Der Compiler prüft bereits, ob die Methode, auf die der Delegat verweist, die gleiche Signatur besitzt. Das Bereitstellen und Reagieren auf Ereignisse wird basierend auf Delegaten realisiert, die nun im Folgenden vorgestellt werden. 13.1 Delegaten Ein Delegat ist ein Verweis auf eine statische Methode oder auf eine Methode einer Instanz einer Klasse. Er wird mit Parametern und Rückgabewert, ähn- lich einer Methode deklariert. Beim Erstellen einer Instanz des Delegaten wird ihm eine Methode übergeben, die dann stellvertretend über den Dele- gaten aufgerufen werden kann (wie über einen Alias). Ein Delegat wird über das Schlüsselwort delegate gekennzeichnet. Ansons- ten entspricht er vom Aufbau her einer »normalen« Methodendeklaration. Der Delegat Mathe nimmt zwei Parameter vom Typ int entgegen und liefert den Typ int zurück. Irgendwo in Ihrer Anwendung wird nun eine »echte« Methode deklariert, welche die gleichen Parameter und den gleichen Rück- gabetyp wie der Delegat besitzt. Im Beispiel ist dies die Methode Add() . Dann wird ein Objekt m vom Typ des Delegaten Mathe erstellt. Als Parameter wird die Methode übergeben. Zum Abschluss wird die Methode über den Dele- Beispiel Einen einfachen Delegaten deklarieren und verwenden 233