¿Cuál es la diferencia entre Console
.WriteLine()
vs Debug
.WriteLine()
?¿Cuál es la diferencia entre Console.WriteLine() vs Debug.WriteLine()?
Respuesta
Console.WriteLine escribe en la secuencia de salida estándar, ya sea en depuración o en versión. Debug.WriteLine escribe en los detectores de rastreo en la colección Listeners, pero solo cuando se ejecuta en depuración. Cuando la aplicación se compila en la configuración de lanzamiento, los elementos de depuración no se compilarán en el código.
Como Debug.WriteLine
escribe a todas las escucha de seguimiento de la colección Listeners, es posible que esto podría ser la producción en más de un lugar (ventana de resultados de Visual Studio, Consola, Archivo de registro, aplicación de terceros que registra un oyente (Creo que DebugView lo hace), etc.).
Console.WriteLine()
es para programas de modo consola. Una buena característica del proceso de alojamiento de Visual Studio hace que su salida aparezca en la ventana Salida de Visual Studio mientras se depura para procesos que no tienen una consola. Eso es muy útil durante la depuración, pero tenga en cuenta que debe eliminar este código (o envolverlo con un #ifdef DEBUG
) cuando esté listo para crear la compilación de versión. De lo contrario, agregará una sobrecarga innecesaria a su programa. Esto lo hace menos ideal para el seguimiento de depuración.
Debug.WriteLine()
genera información de rastreo si compila con DEBUG
condicional #defined. Que está activado por defecto en la compilación de depuración. Donde termina la salida se puede configurar en el archivo app.exe.config
. Si esta configuración no se reemplaza, .NET proporciona automáticamente una instancia de la clase DefaultTraceListener
. Envía el texto Debug.WriteLine()
con la función de API de Windows OutputDebugString()
al depurador. El depurador de Visual Studio hace que aparezca en la ventana de resultados, al igual que Console.WriteLine()
.
Una clara ventaja de Debug.WriteLine()
es que no genera gastos indirectos en la compilación Release, las llamadas se eliminan de manera efectiva. Sin embargo, no es compatible con el formato compuesto, necesitará String.Format()
para eso. Para el seguimiento de depuración, la clase Debug debe ser su elección.
Si su propósito de usar Console.WriteLine es únicamente para la depuración, usted mejor use Debug.WriteLine.
Si desea mostrar un mensaje a su usuario, debe usar Console.WriteLine.
Debug.WriteLine es solo para depurar su aplicación. En el modo de lanzamiento se ignorarán sus declaraciones de depuración.
Otro uso de una aplicación de consola es probar montajes privados. En lugar del enfoque tradicional de crear algún tipo de arnés de prueba GUI para probar la versión compilada de la DLL, simplemente puede volver a compilar la DLL como una aplicación de consola y la entrada/salida desde/hacia la consola. He encontrado que esta técnica es más rápida que pasar el tiempo creando un arnés de prueba GUI.
"Si desea mostrar un mensaje a su usuario, debe usar console.writeline."Esto podría confundir a algunas personas porque solo mostrará algo al usuario si se ejecuta en una aplicación de consola. –
- 1. ¿Cuál es la diferencia entre() vs [] vs {}?
- 2. ¿Cuál es la diferencia entre X = X ++; vs X ++ ;?
- 3. Cuál es la diferencia entre colorWithSRGBRed vs colorWithDeviceRed vs colorWithCalibratedRed
- 4. Char.IsDigit() vs Char.IsNumber(), ¿cuál es la diferencia?
- 5. ¿Cuál es la diferencia entre Cassandra vs Oracle Coherence?
- 6. Mysql: ¿Cuál es la diferencia entre "slow_query_log" vs "log_slow_queries"
- 7. ¿Cuál es la diferencia entre Solr vs Websolr?
- 8. ¿Cuál es la diferencia entre ser db_owner vs. db_datareader/db_datawriter?
- 9. ¿Cuál es la diferencia entre html.AttributeEncode vs html.Encode?
- 10. ¿Cuál es la diferencia entre "origen maestro" vs "origen/maestro"
- 11. ¿Cuál es la diferencia entre Selenium's Remote Control vs WebDriver?
- 12. ¿Cuál es la diferencia entre gets.chomp() vs. STDIN.gets.chomp()?
- 13. ¿Cuál es la diferencia entre "git reset" vs "git rebase"?
- 14. ¿Cuál es la diferencia entre process.cwd() vs __dirname?
- 15. Cuál es la diferencia entre String (value) vs value.toString()
- 16. ¿cuál es la diferencia entre ResultSetExtractor vs Rowmapper?
- 17. JIT vs NGen: ¿cuál es la diferencia?
- 18. EQU vs DC.B. ¿Cuál es la diferencia?
- 19. CATALINA_OPTS vs JAVA_OPTS - ¿Cuál es la diferencia?
- 20. SET vs. SELECT - ¿Cuál es la diferencia?
- 21. node.js vs. meteor.js ¿cuál es la diferencia?
- 22. ¿Cuál es la diferencia entre Python vs Jython vs IronPython vs wxPython?
- 23. ¿Cuál es la diferencia entre string y StringBuilder?
- 24. ¿Cuál es la diferencia entre el
- 25. ¿Cuál es la diferencia entre " " y ""?
- 26. ¿Cuál es la diferencia entre estas funciones?
- 27. ¿cuál es la diferencia entre:.! y: r !?
- 28. ¿Cuál es la diferencia entre ".equals" y "=="?
- 29. ¿Cuál es la diferencia entre HybridHttpOrThreadLocalScoped & HttpContextScoped
- 30. Cuál es la diferencia entre = y: =
Strictly DebugView supervisa los mensajes registrados a través de la llamada a la API nativa de Windows 'OutputDebugString' (y' DebugPrint'). El 'DefaultTraceListener' escribe en' OutputDebugString', por lo que DebugView ve la salida. http://msdn.microsoft.com/en-us/library/system.diagnostics.defaulttracelistener.aspx – MarkJ