Erweiterungsmethoden

Erweiterungsmethoden

Stellen wir uns mal folgendes Szenario vor:
Wir wollen in einem Projekt, eine Hilfsmethode schreiben, mit der wir die Anzahl der Vorkommen, eines bestimmten Zeichens einer Zeichenkette ermiteln können.

Dazu könnten wir uns nun einfach eine statische Klasse schreiben, doch es geht auch eleganter.
Seit .NET 4.0 ist es möglich Erweiterungsmethoden zu schreiben, d.h. wir könnten uns hierzu eine Methode schreiben, die bei Zeichenketten automatisch von Intellisense angeboten wird, ähnlich wie Trim().

Hierzu erstellen wir eine Klasse und fügen eine statische Methode hinzu.
Diese kann wie folgt aufgebaut sein:
public static int CountChar(this string value, char searchCharacter)
{
    int result = 0;
    foreach (char ch in value)
    {
        if (ch == searchCharacter)
        {
            result++;
        }
    }

    return result;
}

Wie ihr seht ist die Syntax sehr einfach, ihr müsst lediglich den ersten Parameter mit this definieren und die Methode statisch zugänglich machen, schon kann die Methode auf alle Zeichenketten angewendet werden, wie in C# gewohnt.

So könntet ihr nun z.B. folgendes machen:
string value = "Das ist ein Test!";
int whitespaces = value.CountChar(' ');
Um einen Kommentar zu hinterlassen, ist eine Anmeldung erforderlich.