Training - Beratung - Projektarbeiten

www.David-Tielke.de

Webcast C# 6.0 - Folge 6: String Interpolations

Das Arbeiten mit Strings gehört seit je her zu einem der meist durchgeführten Datenmanipulationen im Quellcode. Dabei gibt es in C# mehrere Möglichkeiten dazu, z.B. der + Operator, String.Format und natürlich der StringBuilder. Jede dieser Methoden hat Vor- und Nachteile was Performance und Lesbarkeit angeht, jedoch stechen zwei Vorteile immer wieder heraus: Die schnelle Handhabbarkeit des + Operators und die gute Formatfähigkeit von String.Format. Während ersteres sehr komplexen Code erzeugt, ist die Verwendung von String.Format zumeist etwas “too much”. In C# 6.0 wurde mit den String Interpolations eine neue Variante vorgestellt, welche die Vorteile von String.Format und dem + Operator verbindet und das erzeugen von formatierten Strings auf elegante und kurze Weise direkt in die Sprache integriert.

Dazu aus der Project Roslyn Webseite

String.Format and its cousins are very versatile and useful, but their use is a little clunky and error prone. Particularly unfortunate is the use of {0} etc. placeholders in the format string, which must line up with arguments supplied separately:
var s = String.Format("{0} is {1} year{{s}} old", p.Name, p.Age);
String interpolation lets you put the expressions right in their place, by having “holes” directly in the string literal:
var s = $"{p.Name} is {p.Age} year{{s}} old";
Just as with String.Format , optional alignment and format specifiers can be given:
var s = $"{p.Name,20} is {p.Age:D3} year{{s}} old";
The contents of the holes can be pretty much any expression, including even other strings:
var s = $"{p.Name} is {p.Age} year{(p.Age == 1 ? "" : "s")} old";
Notice that the conditional expression is parenthesized, so that the : "s" doesn’t get confused with a format specifier.
Links

Kommentar schreiben

Loading