2010-04-19 25 views
51

He puesto algunas llamadas Console.WriteLine para probar, pero no están apareciendo en el cuadro de salida?Console.WriteLine no aparece en la ventana de salida

public static ArrayList myDeliveries = new ArrayList(); 

public mainForm(){ 
    InitializeComponent(); 
} 

private void mainForm_Load(object sender, EventArgs e){ 

    if (!File.Exists("../../MealDeliveries.txt")){ 
     MessageBox.Show("File not found!"); 
     return; 
    } 

    using (StreamReader sr = new StreamReader("../../MealDeliveries.txt")){ 
     //first line is delivery name 
     string strDeliveryName = sr.ReadLine(); 
     Console.WriteLine("Test content"); 

     while (strDeliveryName != null){ 

      //other lines 
      Delivery d = new Delivery(
       strDeliveryName, 
       sr.ReadLine(), 
       sr.ReadLine(), 
       sr.ReadLine(), 
       sr.ReadLine(), 
       sr.ReadLine(), 
       sr.ReadLine() 
      ); 

      mainForm.myDeliveries.Add(d); 

      //check for further values 
      strDeliveryName = sr.ReadLine(); 
     } 
    } 

    displayDeliveries(); 


} 


private void displayDeliveries(){ 

    lstDeliveryDetails.Items.Clear(); 
    Console.WriteLine("Test content"); 
    Console.WriteLine(mainForm.myDeliveries.Count); 
    foreach (Delivery d in mainForm.myDeliveries){ 
     lstDeliveryDetails.Items.Add(d.DeliveryName); 

    } 
} 

¿Alguien puede ayudar?

+0

Resuelto el problema, escribió el código de la manera incorrecta. No se compiló correctamente – sark9012

Respuesta

33

Si tiene previsto utilizar esta salida en producción, utilice los miembros de la clase Trace. Esto hace que el código sea portátil, puede conectar diferentes tipos de oyentes y mostrarlos en la ventana de la consola, la ventana de depuración, el archivo de registro o cualquier otra cosa que desee.

Si esto es solo un código de depuración temporal que está utilizando para verificar que cierto código se está ejecutando o tiene los valores correctos, entonces use la clase Debug como Zach sugiere.

Si absolutamente debe usar la consola, puede attach a console en el método Main del programa.

76

Console salidas a la ventana de la consola y las aplicaciones de Winforms no muestran la ventana de la consola. Debería poder usar System.Diagnostics.Debug.WriteLine para enviar la salida a la ventana de salida en su IDE.

Edit: En relación con el problema, ¿ha verificado que su mainForm_Load realmente se está llamando? Puede colocar un punto de interrupción al comienzo de mainForm_Load para ver. Si no se está llamando, sospecho que mainForm_Load no está conectado al evento Load.

Además, es más eficiente y generalmente mejor para anular On{EventName} en lugar de suscribirse a {EventName} desde dentro de las clases derivadas (en su caso anulando OnLoad en lugar de Load).

+4

¿Te gusta? System.Diagnostics.Debug.WriteLine ("some tetttttttttt23423423423423423tttttttttttttttttttttttt"); – sark9012

+2

@Luke sí, así – msarchet

+2

@Luke - sí, pero puede 'Importar System.Diagnostics' para que sea mucho más simple. Y prefiero usar la clase 'Trace' para esto. –

8

Si desea que aparezca la salida Console.WriteLine("example text") en la ventana de salida de depuración, cambie temporalmente el tipo de salida de su aplicación de la aplicación de consola a la aplicación de Windows.

Desde menús, seleccione Propiedades del proyecto +, y vaya a Tipo de salida: desplegable, el cambio de aplicación para Windows a continuación, ejecutar la aplicación

Por supuesto que debe cambiarlo de nuevo para la construcción de una aplicación de consola destinada a funcionar fuera de la IDE.

(probado con Visual Studio 2008 y 2010, es de esperar que debería funcionar en estas últimas versiones también)

+0

Esto funciona. Gracias. – Kenci

+0

Esta es una mejor manera si está buscando copiar rápidamente los resultados de su aplicación. –

+0

¿Por qué Console.Writeline no funciona en una aplicación de consola? Esto suena muy contrario a la intuición. – sydd

1

Si está desarrollando una aplicación de línea de comandos, también se puede utilizar Console.ReadLine() al final de su código que esperar a la Presione la tecla 'Enter' antes de cerrar la ventana de la consola para que pueda leer su salida. Sin embargo, las respuestas Trace y Debug publicadas anteriormente son mejores opciones.

Cuestiones relacionadas