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.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Code schnell ergänzen: die Erweiterungsmethoden von C# helfen

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *