立即窗口中的换行符

时间:2010-05-19 19:48:00

标签: visual-studio debugging visual-studio-2010 newline immediate-window

使用Visual Studio 2010 Professional,我有一个ToString()方法,如下所示:

public override string ToString()
{
    return "something" + "\n" + "something";
}

因为有几个“something”并且每个都很长,我想看看

something
something

可悲的是,我正在看

"something\nsomething"

有没有办法得到我想要的东西?

2 个答案:

答案 0 :(得分:107)

实际上还有一种方法。您可以使用即时窗口中的格式说明符来更改显示的格式。如果你有一个带有回车符和换行符的字符串(“\ r \ n”),你可以使用'no quotes'格式说明符来跟随打印请求。

在即时窗口中输入:

?MyObj.ToString(),nq

并且\r\n将在即时窗口中生成换行符。

有关格式说明符的更多信息,请参阅: http://msdn.microsoft.com/en-us/library/e514eeby.aspx

答案 1 :(得分:-4)

不幸的是没有。这里发生的是调试器API设计的工件。

负责处理ToString()调用的组件是表达式计算器。它是大多数调试器窗口(手表,本地,立即等)的数据源。

对于每个窗口,但是立即将值显示在一行上。在一行上显示多行字符串没有多大意义。因此,表达式计算器通过将换行符转换为可显示的版本,使字符串更易于显示。

此技术适用于本地人和观察窗口。但是在即时窗口中,显示多行值更有意义,因此它的含义更少。不幸的是,表达式求值程序不知道它的数据显示位置的上下文,因此可以安全地操作以逃避换行。

相关问题