为了进行单元测试,我正在编写一些代码来自动解析/计算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
只在试图显示字符串字段/成员时才重要吗? 最佳答案
“nq”字面意思是“no quotes”(从对象值中去掉前导引号)。所以,是的,只有当试图显示字符串成员时。
https://blogs.msdn.microsoft.com/jaredpar/2011/03/18/debuggerdisplay-attribute-best-practices/