Code schnell ergänzen: die Erweiterungsmethoden von C# helfen

Erweiterungsmethoden werden innerhalb einer statischen Klasse platziert und sollten als statisch deklariert werden. Von da an sehen Erweiterungsmethoden aus wie jede übliche Methode, abgesehen von einer kleinen Änderung. Der erste Parameter sollte diese Form haben: TypeToExtend parametername. Dies zeigt dem Compiler an, dass eine Erweiterungsmethode für die Klasse TypeToExtend erstellt wird. Außerdem deklariert es, dass sich innerhalb des Methodenkörpers eine Variable namens „parametername“ befindet, die den Wert der Instanz darstellt.

Hier ein Beispiel: Zur String-Klasse wird eine Matches-Methode hinzugefügt, die ein Muster für einen regulären Ausdruck und reguläre Ausdrucksoptionen anzeigt. Wenn die Methode unter Verwendung des String ausgeführt wird, erzeugt sie unter Nutzung der Muster und Optionen ein Regex-Objekt und gibt das Matches-Objekt aus dem Regex aus. Außerdem wird eine Überlastung dieser neuen Methode erzeugt, die keine Übergabe von Optionen benötigt und nur die Regex-Standardoptionen verwendet. Der Code lautet wie folgt:

Dieser Code verwendet die Parameterquelle als Variable innerhalb der Methode. Doch wenn die Methode tatsächlich aufgerufen wird, ist die Quelle keinesfalls ein Parameter, der per Aufrufcode an die Methode übergeben wird. Nachfolgend ein Beispiel für einen Aufruf dieser Erweiterungsmethode:

Wie man sehen kann, wird der Quellparameter tatsächlich nicht an die Methode übergeben. Außerdem ist ersichtlich, wie die Erweiterungsmethode nahtlos Mitglied der Stringklasse geworden ist, ohne dass ein Unterklassen-String nötig war. Für die Erweiterungsmethode ist es wichtig, festzuhalten, dass die Klasse, die sie enthält, für den Aufruf-Code verfügbar sein und sich innerhalb des Anwendungsbereichs befinden muss. Die Alternative wäre, die Erweiterungsmethode als statische Methode der Klasse, die sie enthält, zu deklarieren. In diesem Fall lautet der Code wie folgt:

Erweiterungsmethoden sind bei Weitem kein vollständiger Ersatz für Klassenvererbung. Es wird immer einen Bedarf an spezialisierten Versionen für Klassen geben. Doch Erweiterungsmethoden sind wirklich von Vorteil, wenn begrenzte Funktionalitäten hinzugefügt werden sollen – die Probleme, die eine Unterklassifizierung mit sich bringt, können so einfach umgangen werden. Weiterführende Details zu Erweiterungsmethoden stehen in den Sprachspezifikationen (Word-Format) von C# 3.0.

Erweiterungsmethoden gehören absolut in jedes Toolkit. Nach ein oder zwei Anwendungen zeigen sich die Vorteile dieser Technik deutlich.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Adobe schließt neun kritische Lücken in Reader und Acrobat

Das jüngste Update bringt insgesamt zwölf Fixes. Schadcode lässt sich unter Umständen ohne Interaktion mit…

3 Tagen ago

Fabrikautomatisierung: Siemens integriert SPS-Ebene

Eine softwarebasierte Workstation soll es Ingenieuren erlauben, sämtliche Steuerungen zentral zu verwalten. Pilotkunde ist Ford.

3 Tagen ago

Ebury-Botnet infiziert 400.000 Linux-Server weltweit

Kryptodiebstahl und finanzieller Gewinn sind laut ESET-Forschungsbericht die vorrangigen neuen Ziele.

3 Tagen ago

Sicherheitslücken in Überwachungskameras und Video-Babyphones

Schwachstellen aus der ThroughTek Kaylay-IoT-Plattform. Dringend Update-Status der IoT-Geräte prüfen.

3 Tagen ago

AWS investiert Milliarden in Cloud-Standort Brandenburg

Fast acht Milliarden Euro fließen in die deutsche Region der AWS European Sovereign Cloud. Das…

3 Tagen ago

DSL oder Kabel – Welcher Anschluss passt zu Ihnen?

Internet in den eigenen vier Wänden ist heutzutage nicht mehr wegzudenken. Denn egal, ob Homeoffice…

4 Tagen ago