Visual Studio:[DebuggerDisplay],指定格式时显示“不是有效的格式说明符”

Jul*_*ian 5 c# visual-studio debuggerdisplay visual-studio-2017

如果我在 上指定(日期)格式[DebuggerDisplay],我会看到错误 CS0726:

错误 CS0726: ':d' 不是有效的格式说明符

例如这段代码:

[DebuggerDisplay("{From:d} - {To:d}")
public class DateRange 
{
    public DateTime From { get; set; }
    public DateTime To { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在 Visual Studio 中调试时显示:

在此输入图像描述

Jul*_*ian 4

为了指定 的格式, [DebuggerDisplay]您需要一个表达式,例如ToString("d")- 并转义引号。

这有效:

[DebuggerDisplay("{From.ToString(\"d\"),nq} - {To.ToString(\"d\"),nq}")
public class DateRange 
{
    public DateTime From { get; set; }
    public DateTime To { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我还添加了一个,,nq这样我们就不会渲染额外的引号。

请参阅在 DebuggerDisplay 中使用表达式

结果:

在此输入图像描述

注意:,d不适用于指定格式 - 它不会给出错误,但我也不会更改格式