7

我正在编写一些代码来自动解析/评估DebuggerDisplay字符串以进行单元测试。我很好奇,该,nq指令是否仅对字符串有效?我看到,如果我写

[DebuggerDisplay("{c,nq}")]
public class D { public C c = new C(); }

public class C { }

然后 anew D()将出现{C}在调试器中。,nq从显示字符串中删除具有相同的效果。只有当我将类型更改为c字符串时,像这样

[DebuggerDisplay("{c,nq}")]
public class D { public string c = "foo"; }

删除/保留,nq似乎有效果(它分别导致"foo"foo)。那么,nq只有当您尝试显示字符串字段/成员时才重要吗?

4

1 回答 1

18

“nq”字面意思是“无引号”(从对象值中去掉前导引号)。所以,是的,只有在尝试显示字符串成员时。

https://blogs.msdn.microsoft.com/jaredpar/2011/03/18/debuggerdisplay-attribute-best-practices/

于 2017-01-24T20:39:40.637 回答