String Interpolation

Eintrag zuletzt aktualisiert am: 19.10.2015

Die String Interpolation gehört zu den syntakischen Zuckerstücken in C# 6.0 und Visual Basic 14.
Durch Voranstellen des Dollarzeichens $ vor eine Zeichenkette kann man anstelle der nachgestellten Parameterliste bei String.Format() die einzelne Ausdrücke direkt in die geschweiften Klammern schreiben. Formatierungs-ausdrücke sind weiterhin möglich.

Alt:
var ausgabeAlt = String.Format("Kunde #{0:0000}: {1} ist in der Liste seit {2:d}.", k.ID, k.GanzerName, k.ErzeugtAm);

Neu:
var ausgabeNeu = $"Kunde #{k.ID:0000}: {k.GanzerName} ist in der Liste seit {k.ErzeugtAm:d}.";

Bei Verwendung des bedingten Operators ? : sind zusätzliche runde Klam-mern vor und nach dem Ausdruck notwendig, um eine Verwechselung mit einem Formatierungsausdruck zu vermeiden.

Console.WriteLine($"Stammkunde: {(stammkunde ? "Ja" : "Nein")}");

Eine Kombination mit „Verbatim String“-Zeichen @ ist möglich, allerdings muss die Reihenfolge $@"..." verwendet werden. @$"…" ist nicht erlaubt.

// Kombination $ und @
var kundenordner1 = String.Format($@"d:\Daten\Kunden\{k.ID:0000}");
// nicht erlaubt: var kundenordner2 = String.Format(@$"d:\Daten\Kunden\{k.ID:0000}");