C# 6.0引入了一种新的格式化操作,使用符号
我尝试了这个:
$
表示。相比之前的方式,现在可以这样写:String lastName = "Doena";
String firstName = "DJ";
Console.WriteLine(String.Format("{1} {0}", lastName, firstName));
你可以做到这一点
Console.WriteLine($"{firstName} {lastName}");
但是数字格式怎么办呢?如果我有这样一个例子:
Decimal price = 9999.95m;
Decimal freebie = 0;
const String format = "#,##0.##";
Console.WriteLine(String.Format("{0:" + format + "}\t{1:" + format + "}", price, freebie));
我尝试了这个:
Console.WriteLine($"{price:"{format}"}\t{freebie:"{format}"}");
和这个:
Console.WriteLine($"{price:{format}}\t{freebie:{format}}");
和这个:
Console.WriteLine($"{price:format}\t{freebie:format}");
但是它们要么无法编译,要么没有带来期望的结果。
有什么想法吗?
编辑 Howwie的答案似乎是在这里走得通的合理方式:
Console.WriteLine($"{price.ToString(format)}\t{freebie.ToString(format)}");
string.Format
。 - Jon Skeet{0:{1}}
。 - vgruConsole.WriteLine($"{price.ToString(format)}\t{freebie.ToString(format)}");
来替代。 - Howwie