Visual Studio: [DebuggerDisplay], показывает «недопустимый спецификатор формата» при указании формата - PullRequest
0 голосов
/ 13 марта 2020

Если я указываю (дату) формат для [DebuggerDisplay], я вижу ошибку CS0726:

ошибка CS0726: ': d' не является допустимым спецификатором формата

Например, этот код:

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

Отображается при отладке в Visual Studio:

enter image description here

1 Ответ

0 голосов
/ 13 марта 2020

Для указания формата на [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, чтобы мы не отображали лишние кавычки.

См. Использование выражений в DebuggerDisplay

Результат:

enter image description here

Примечание: ,d не будет работать для указания формата - он не даст ошибка, но я также не буду менять формат

...