в MonoDevelop его использование впилено:
http://lists.ximian.com/pipermail/monod … 01884.html
Официальная документация:
https://msdn.microsoft.com/ru-ru/library/x810d419.aspx
по умолчанию выводится значение {<typeName>}
если имеется переопределенный метод ToString(), отладчик использует его
если используется атрибут DebuggerDisplay, он будет иметь более высокий приоритет по отношению к переопределенному методу ToString()
В тексте программы это выглядит как-то так:
[DebuggerDisplay("x = {x} y = {y}")]
или
[DebuggerDisplay("{GetDebuggerDisplay(), nq}")]
public abstract partial class SyntaxNode
{
...
private string GetDebuggerDisplay()
{
return GetType().Name + " " + KindText + " " + ToString();
}
The “,nq” suffix here just asks the expression evaluator to remove the quotes when displaying the final value (nq = no quotes).
https://blogs.msdn.microsoft.com/jaredp … practices/
Having the property be private is fine because nothing is private in the debugger.
Другим способом сократить запись атрибута является создание закрытого свойства, которое выполняет операцию и возвращает строку.
Атрибут DebuggerDisplay сможет отобразить значение этого закрытого свойства. Ниже показан пример реализации этого способа.
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public sealed class MyClass
{
public int count { get; set; }
public bool flag { get; set; }
private string DebuggerDisplay
{
get
{
return string.Format("("Object {0}", count - 2);
}
}
}
Атрибут DebuggerDisplay также может принимать именованные параметры.
Name, Type - Эти параметры влияют на столбцы Имя и Тип окон переменных. (Для них также может быть задан вывод строк с использованием того же синтаксиса, что и для конструктора.) Злоупотребление этими параметрами или их неправильное использование может, однако, привести к выводу неудобочитаемых или недостоверных данных.
Target, TargetTypeName - Указывает конечный тип, когда атрибут используется на уровне сборки.
Другие атрибуты для отладки:
DebuggerBrowseable
DebuggerTypeProxy
Отредактировано Arsen.Shnurkov (2017-07-10 10:17:21)