Hay dos formas de aumentar la utilidad de depurar información en lugar de verla {MyNamespace.MyProject.MyClass}en el depurador.
Estos son el uso DebuggerDisplayAttributey el ToString()método.
using System.Diagnostics;
...
[DebuggerDisplay("Name = {Name}")]
public class Person
{
public string Name;
}
o
public class Person
{
public string Name;
public override string ToString()
{
return string.Format("Name = {0}", Name);
}
}
¿Hay alguna razón para preferir uno al otro? ¿Alguna razón para no hacer ambas cosas? ¿Es una preferencia puramente personal?
fuente

ToStringmenudo se usa como una "cadena de visualización predeterminada", por ejemplo, porConsole.WriteLineo enlace de datos WPF.Si lo que
ToString()regresa y ve en el depurador no es lo que le gustaría, entonces useDebuggerDisplayAttribute.fuente
También se puede tener en cuenta la lentitud del depurador:
DebuggerDisplayAttributeLa expresión de formato es interpretada por el depurador después de cada paso de depuración / punto de interrupción.ToStringse compila en su código y, por lo tanto, el depurador lo ejecuta mucho más rápido.Lo mismo ocurre con los puntos de interrupción condicionales: si la expresión condicional es demasiado lenta para que el depurador la interprete cada vez que la ejecución alcanza el punto de interrupción, puede ser útil eliminar el punto de interrupción y, en su lugar, agregar un código temporal como este:
if (condition) Debugger.Break();fuente