Datentyp Erweiterungen

Oftmals kommt es vor, dass man bei einigen Datentypen die ein oder andere Methode mehr gebrauchen könnte. So ist zum Beispiel das aus VB bekannte „IsNumeric“ bei Strings sehr hilfreich und dennoch nicht in C# vorhanden. Dies lässt sich jedoch sehr einfach nachbauen. Dazu muss man nur eine Erweiterung, also eine Extension, des Datentypen „String“ erstellen. Dies funktioniert ganz einfach durch das Definieren einer statischen Methode, welche als ersten Parameter einen String erwartet, der wiederrum ein „this“ vorangestellt bekommt. Für den Fall einer „IsNumeric“-Prüfung würde die zu implementierende Methode zum Beispiel so aussehen:

public static bool IsNumeric(this string str)
{
    decimal d;
    return decimal.TryParse(str, NumberStyles.Any, NumberFormatInfo.InvariantInfo, out d);
}

Dies kann natürlich mit jedem Datentypen gemacht werden und eventuell auch mit Interfaces. Das Wichtige und Relevante dabei sind nur die Aspekte, dass die Methode statisch ist und das „this“ vor den Parameter gestellt wird. Verwenden würde man die obige Implementierung wie folgt: „Ein String der keine Zahl ist“.IsNumeric();