Visual Studio: [DebuggerDisplay], 指定格式时显示 "not a valid format specifier"

Visual Studio: [DebuggerDisplay], shows "not a valid format specifier" when specifying format

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

error CS0726: ':d' is not a valid format specifier

例如这段代码:

[DebuggerDisplay("{From:d} - {To:d}")
public class DateRange 
{
    public DateTime From { get; set; }
    public DateTime To { get; set; }
}

在 Visual Studio 中调试时显示:

要在 [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; }
}

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

Using Expressions in DebuggerDisplay

结果:

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