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
无法指定格式 - 它不会给出错误,但我也不会更改格式
如果我在 [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
无法指定格式 - 它不会给出错误,但我也不会更改格式