设置字符串插值中的短划线格式

本文关键字:格式 字符串 插值 设置 | 更新日期: 2023-09-27 18:31:05

我刚刚查看了 C# 6.0 中新的字符串插值功能(有关更多详细信息,请参阅 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 意外字符"-"字符串插值程序.cs 21

有什么方法可以让破折号在格式化部分工作吗?我知道我只能使用字符串。Format(),但我想看看它是否可以通过字符串插值来完成,就像一个练习一样。

编辑:由于似乎没有人知道我在说什么,请参阅我关于该主题的博客文章,看看它应该如何工作。

设置字符串插值中的短划线格式

最终版本更加用户友好:

var text = $"The time is {DateTime.Now:yyyy-MM-dd HH:mm:ss}";

使用 VS 2015 预览版中的字符串插值版本,可以通过将其括在另一对引号中,在插值格式中使用短划线等字符:

var dob2 = "Customer '{customer.IdNo} was born on '{customer.DateOfBirth : "yyyy-M-dd"}";