我刚刚检查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}";
如果我这样做,我会收到错误:
Error CS1056 Unexpected character ‘-‘ StringInterpolation Program.cs 21
有什么办法可以让破折号在格式化部分工作吗?我知道我可以使用string.Format(),但是我想看看它是否可以用字符串插值来完成,就像一个练习一样.
编辑:由于似乎没人知道我在说什么,参见my blog post关于这个问题,看看它应该如何工作.
解决方法
使用VS 2015 Preview中的字符串插值版本,您可以使用插值格式中的破折号将其包含在另一对引号中:
var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth : "yyyy-M-dd"}";