DebuggerDisplay 指令“,nq”是否只对字符串有效?
Does the DebuggerDisplay directive ",nq" only have effect for strings?
我正在编写一些代码以自动 parse/evaluate 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"; }
removing/keeping ,nq
似乎有效果(它分别导致 "foo"
和 foo
)。那么 ,nq
仅在您尝试显示字符串 field/member 时才重要吗?
'nq' 字面意思是 'no quotes'(从对象值中去掉前导引号)。所以,是的,仅在尝试显示字符串成员时。
https://blogs.msdn.microsoft.com/jaredpar/2011/03/18/debuggerdisplay-attribute-best-practices/
我正在编写一些代码以自动 parse/evaluate 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"; }
removing/keeping ,nq
似乎有效果(它分别导致 "foo"
和 foo
)。那么 ,nq
仅在您尝试显示字符串 field/member 时才重要吗?
'nq' 字面意思是 'no quotes'(从对象值中去掉前导引号)。所以,是的,仅在尝试显示字符串成员时。
https://blogs.msdn.microsoft.com/jaredpar/2011/03/18/debuggerdisplay-attribute-best-practices/