Как использовать делегат, отличный от ToString, для отображения значения объекта во время отладки? - PullRequest
9 голосов
/ 28 марта 2012

.NET / Visual Studio использует метод объекта ToString () для отображения значения объекта при просмотре его в отладчике. Я хотел бы отобразить конкретную информацию, но так как .ToString () часто используется платформой при преобразовании объекта в строку, я не могу сделать это, переопределив ToString (). Есть ли атрибут, который я могу использовать, чтобы указать отладчику использовать другой метод или свойство?

1 Ответ

14 голосов
/ 28 марта 2012

Используйте DebuggerDisplayAttribute [MSDN] .Вы предоставляете ему строку формата, которая ссылается на поля / свойства в классе для отображения во время отладки без необходимости связываться с ToString().

[DebuggerDisplay("Count = {count}")]
class MyHashtable
{
    public int count = 4;
}

Он также работает с методами:

[DebuggerDisplay("{ToDebugString()}")]
public class SomeClass
{
    public override String ToString()
    {
        return "Normal ToString()";
    }

    public String ToDebugString()
    {
        return "ToDebugString()";
    }
 }
...