Влияет ли директива DebuggerDisplay ",nq" только на строки?
Я пишу код для автоматического анализа / оценки DebuggerDisplay
строки для целей модульного тестирования. Мне любопытно, ,nq
директива влияет только на строки? Я вижу, что если я напишу
[DebuggerDisplay("{c,nq}")]
public class D { public C c = new C(); }
public class C { }
Затем new D()
будет представлять как {C}
в отладчике. Удаление ,nq
из строки дисплея имеет тот же эффект. Только если я поменяю тип c
в строку, как это
[DebuggerDisplay("{c,nq}")]
public class D { public string c = "foo"; }
делает удаление / сохранение ,nq
кажется, имеет эффект (это приводит к "foo"
а также foo
соответственно). Так же ,nq
имеет значение только когда вы пытаетесь отобразить строковое поле / член?
1 ответ
"nq" буквально означает "без кавычек" (убрать начальные кавычки из значения объекта). Так что да, только при попытке отобразить строковые элементы.
https://blogs.msdn.microsoft.com/jaredpar/2011/03/18/debuggerdisplay-attribute-best-practices/