Pregunta

Con Visual Studio 2010 Professional, tengo un método ToString() que es similar al siguiente:

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

Debido a que hay varios "something" 's y cada uno es larga, me gustaría ver

something
something

Lamentablemente, estoy viendo

"something\nsomething"

¿Hay una manera de conseguir lo que quiero?

¿Fue útil?

Solución

En realidad hay una manera. Puede usar especificadores de formato en la ventana inmediata para cambiar el formato de la pantalla. Si usted tiene una cadena con retornos de carro y saltos de línea en el mismo ( "\ r \ n") se puede seguir la petición de impresión con el especificador de formato 'sin comillas'.

En el tipo de ventana inmediata:

?MyObj.ToString(),nq

y el \r\n hará que los saltos de línea en la ventana inmediata.

Para obtener más información sobre los especificadores de formato ver: http://msdn.microsoft.com/en-us/library/e514eeby.aspx

Otros consejos

Desafortunadamente no hay ninguna. Lo que está sucediendo aquí es un artefacto del diseño de las API del depurador.

El componente responsable de procesar la llamada ToString() es el evaluador de expresiones. Es la fuente de datos para la mayoría de las ventanas del depurador (reloj, los locales, inmediata, etc ...).

Para cada ventana, pero se muestra lo inmediato el valor en una sola línea. Viendo una cadena de varias líneas en una sola línea, no tiene mucho sentido. De ahí que el evaluador de expresiones hace que la cadena un poco más visualizable por escapar caracteres de nueva línea en una versión visualizable.

Esta técnica funciona bastante bien para los locales y ventana de inspección. Pero en la ventana inmediata, donde tiene más sentido para mostrar el valor de varias líneas que tiene mucho menos sentido. Por desgracia, el evaluador de expresiones no conoce el contexto de donde se mostrarán sus datos quedarán y por lo tanto hace la operación segura que es para escapar de las nuevas líneas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top