Junior
Worum geht es bei den Erweiterungsmethoden?
sobes.tech KI
Antwort von AI
Erweiterungsmethoden (extension methods) ermöglichen es, neuen Methoden zu bestehenden Typen hinzuzufügen, ohne deren Quellcode zu ändern oder einen neuen abgeleiteten Typ zu erstellen.
Der Kern ist folgender:
- Sie werden als statische Methoden in einer statischen Klasse deklariert.
- Der erste Parameter der Erweiterungsmethode trägt das Schlüsselwort
thisvor seinem Typ. Dieser Parameter gibt den Typ an, der erweitert wird. - Sie werden aufgerufen, als wären sie Instanzenmethoden des erweiterten Typs.
Beispiel:
// Statische Klasse für Erweiterungsmethoden
public static class StringExtensions
{
// Erweiterungsmethode für den Typ string
public static string Truncate(this string input, int maxLength)
{
if (string.IsNullOrEmpty(input))
{
return input;
}
return input.Length <= maxLength ? input : input.Substring(0, maxLength) + "...";
}
}
// Verwendung der Erweiterungsmethode
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Wird wie eine Instanzmethode aufgerufen
// Entspricht dem direkten Aufruf der statischen Methode
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);
Vorteile:
- Verbessert die Lesbarkeit des Codes, indem die "Punkt-Syntax" bei Objekten verwendet werden kann.
- Ermöglicht das Hinzufügen von Funktionalität zu "versiegelten" (sealed) Klassen oder Typen aus Drittanbieterbibliotheken, ohne deren Quellcode zu ändern.
- Erleichtert das Schreiben von LINQ-Abfragen, da viele LINQ-Methoden als Erweiterungsmethoden implementiert sind.