Neuerungen in C# 6.0

Kurzmitteilung

Mit dem Visual Studio 2015 geht C# bereits in Version 6.0 „online“. Was genau die neue Version alles zu bieten hat, lässt sich im Blogpost auf informatik-aktuell nachlesen. Viele der Neuerungen sehen wirklich interessant aus und könnten das Leben der Programmierer deutlich vereinfachen.

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();

Der Weg zum eigenen MVVM-Framework – Part 3 (Einbindung der Core-Funktionalität)

Dieses Mal wollen wir uns darum kümmern, die noch offene Kern-Funktionalität komplett einzubinden. Dies wäre jedoch für die erste Version dieses Frameworks lediglich eine Klasse welche die Standard.NET-String-Klasse um einige Funktionen erweitert. Aber nichts des so trotz lasst und damit beginnen, den auch diese Klasse will erst mal geschafft sein! Beginnen wir also erneut damit, zunächst die Ordner Struktur festzulegen, in welcher unsere Klasse einmal liegen soll.Anschließend werden wir wieder die leere Klasse definieren. Wenn dies auch geschehen ist, wird es aufgrund des Grey-Box-Testverfahren dazu übergehen, die UnitTests zu implementieren. Und zu guter Letzt wird natürlich wieder die eigentliche Funktionalität implementiert. Nun gut, also lasst uns beginnen!
Weiterlesen