我刚刚在C#6.0中检查了新的字符串插值功能(有关详细信息,请参阅Language Features page at Roslyn)。使用当前语法(预计会改变),你可以做这样的事情(例子来自我刚才写的博客文章):
var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth:yyyyMdd}";
但是,我似乎无法在格式化部分中包含短划线,例如:
var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth:yyyy-M-dd}";
如果我这样做,我会收到错误:
错误CS1056意外字符' - 'StringInterpolation Program.cs 21
有什么方法可以让破折号在格式化部分工作吗?我知道我可以使用string.Format(),但我想看看它是否可以用字符串插值来完成,就像练习一样。
编辑:因为似乎没有人知道我在说什么,请参阅主题上的my blog post,看看它应该如何运作。
答案 0 :(得分:45)
最终版本更加用户友好:
var text = $"The time is {DateTime.Now:yyyy-MM-dd HH:mm:ss}";
答案 1 :(得分:7)
使用VS 2015预览版中的字符串插值版本,您可以在插值格式中使用短划线等字符,将其括在另一对引号中:
var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth : "yyyy-M-dd"}";