C# 6.0 bringt diesen raffinierten neuen Formatierungsvorgang durch ein $
Insert dynamisches Format in interpoliert String
angegeben Statt dies zu tun
String lastName = "Doena";
String firstName = "DJ";
Console.WriteLine(String.Format("{1} {0}", lastName, firstName));
Sie diesen
Console.WriteLine($"{firstName} {lastName}");
tun kann Aber was ist Zahlenformate. Was passiert, wenn ich dies:
Decimal price = 9999.95m;
Decimal freebie = 0;
const String format = "#,##0.##";
Console.WriteLine(String.Format("{0:" + format + "}\t{1:" + format + "}", price, freebie));
ich das versucht:
Console.WriteLine($"{price:"{format}"}\t{freebie:"{format}"}");
und diese:
Console.WriteLine($"{price:{format}}\t{freebie:{format}}");
und diese:
Console.WriteLine($"{price:format}\t{freebie:format}");
Aber sie entweder nicht einmal kompilieren oder bringen Sie nicht das erhoffte Ergebnis.
Irgendwelche Ideen?
bearbeiten Howwie des answer die angemessene Art und Weise zu sein scheint hier zu gehen:
Console.WriteLine($"{price.ToString(format)}\t{freebie.ToString(format)}");
Sie nicht tun können, , Grundsätzlich gilt. Sie müssen 'string.Format' explizit aufrufen. –
Dies steht nicht im Zusammenhang mit C# 6.0. Es ist, als würde man fragen, warum man in früheren Versionen '{0: {1}}' nicht machen kann. – Groo
Mögliches Duplikat von [String Interpolation mit Formatvariable] (http://stackoverflow.com/questions/32360434/string-interpolation-with-format-variable) – Sinatr