Существует два способа увеличить полноценность отладочной информации вместо наблюдения {MyNamespace.MyProject.MyClass}
в отладчике.
Это использование [DebuggerDisplayAttribute][1]
и ToString()
метод.
using System.Diagnostics;
...
[DebuggerDisplay("Name = {Name}")]
public class Person
{
public string Name;
}
или
public class Person
{
public string Name;
public override string ToString()
{
return string.Format("Name = {0}", Name);
}
}
Там какая-либо причина состоит в том, чтобы предпочесть тот другому? Какая-либо причина не сделать обоих? Это - чисто персональное предпочтение?
Использование [DebuggerDisplay]
предназначено только для отладчика. Переопределение ToString () имеет «побочный эффект» изменения отображения во время выполнения.
Это может быть хорошо, а может и нет.
Часто во время отладки требуется больше информации, чем в стандартном выводе ToString ()
, и в этом случае вы должны использовать и то, и другое.
Например, в вашем случае реализация ToString кажется мне странной. Я ожидал, что реализация ToString () класса «Человек» просто вернет имя напрямую, а не «Имя = PersonsName». Однако во время отладки мне может понадобиться эта дополнительная информация.