Влияет ли директива 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/

Другие вопросы по тегам