【发布时间】:2013-03-11 20:59:26
【问题描述】:
我预计以下代码中变量 a 的调试器显示为 {11\n22} 但它是 {1122}:
class A
{
public string Text;
public override string ToString()
{
return this.Text;
}
}
A a = new A();
a.Text = "11\n22";
调试器显示在变量窗口中:
display string of the object "{1122}" // why not "{11\n22}" ?
a.Text "11\n22"
a.ToString() "11\n22"
用 VS2012 和 VS2010 测试。我以前从未意识到这一点。有人知道为什么显示字符串省略了 \n 字符吗?
即使添加 [DebuggerDisplay("Text")] 也会得到相同的结果。
【问题讨论】:
-
Windows 换行符是
\r\n,而不仅仅是\n。 -
谢谢。更改了问题名称。
-
@Oded 这并不能真正解释为什么调试器在一种情况下显示“11\n12”而在另一种情况下显示“1112”。
-
可能没有比它是调试器错误更多的解释了。
-
@oded 与问题完全无关。 '\n' 被记录为“换行符”,也就是换行符。
标签: c# visual-studio visual-studio-debugging