К сожалению, нет. Что здесь происходит, это артефакт дизайна API-интерфейсов отладчика.
Компонент, ответственный за обработку вызова ToString()
, является оценщиком выражений. Это источник данных для большинства окон отладчика (часы, местные, немедленные и т. Д.).
Для каждого окна, но сразу же значение отображается в одной строке. Отображение многострочной строки в одной строке не имеет большого смысла. Следовательно, оценщик выражения делает строку немного более отображаемой, экранируя символы новой строки в отображаемую версию.
Эта техника работает очень хорошо для местных жителей и для просмотра. Но в ближайшем окне, где имеет смысл отображать многострочное значение, он имеет гораздо меньший смысл. К сожалению, оценщик выражений не знает контекста того, где будут отображаться данные, и, следовательно, безопасная операция, которая должна избегать новых строк.
Я не могу воспроизвести это поведение на моем VS2010, я получаю новую строку в ближайшем окне. –
Есть ли настройки окна Immediate Window, которые я не вижу? –
Извините, я просто набрал имя var, которое дает правильный результат, я получаю то же поведение, что и вы с var.ToString() –