2010-04-19 14 views
51

Ho effettuato alcune chiamate Console.WriteLine per verificare, ma non vengono visualizzate nella casella di output?Console.WriteLine non viene visualizzato nella finestra Output

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); 

    } 
} 

Qualcuno può aiutare ??

+0

Risolto il problema, ha scritto il codice nel modo sbagliato. Non stava compilando correttamente – sark9012

risposta

33

Se si intende utilizzare questa uscita in produzione, utilizzare i membri della classe Trace. Ciò rende il codice portabile, puoi collegare diversi tipi di ascoltatori e inviare alla finestra della console, alla finestra di debug, al file di registro o qualsiasi altra cosa ti piaccia.

Se questo è solo un codice di debug temporaneo che si sta utilizzando per verificare che un certo codice sia in esecuzione o ha i valori corretti, quindi utilizzare la classe Debug come suggerisce Zach.

Se è assolutamente necessario utilizzare la console, è possibile attach a console nel metodo Main del programma.

76

Console le uscite alla finestra della console e le applicazioni Winforms non mostrano la finestra della console. Dovresti essere in grado di utilizzare System.Diagnostics.Debug.WriteLine per inviare l'output alla finestra di output nel tuo IDE.

Modifica: Per quanto riguarda il problema, avete verificato che il vostro mainForm_Load venga effettivamente chiamato? È possibile inserire un punto di interruzione all'inizio di mainForm_Load per vedere. Se non viene chiamato, sospetto che mainForm_Load non sia collegato all'evento Load.

Inoltre, è più efficiente e generalmente meglio per ignorare On{EventName} invece di sottoscrizione di {EventName} dall'interno classi derivate (nel tuo caso l'override OnLoad invece di Load).

+4

Ti piace questo? System.Diagnostics.Debug.WriteLine ("some tetttttttttt23423423423423423tttttttttttttttttttttttt"); – sark9012

+2

@Luke sì come quello – msarchet

+2

@Luke - sì, ma è possibile importare System.Diagnostics per renderlo molto più semplice. E preferisco usare la classe 'Trace' per questo. –

8

Se si desidera visualizzare l'output Console.WriteLine("example text") nella finestra Debug Output, modificare temporaneamente il tipo di output dell'applicazione dall'applicazione console all'applicazione Windows.

Dal menu, scegliere Progetto + Proprietà e passare alla Tipo di uscita: discesa, il cambiamento di Applicazione Windows quindi eseguire l'applicazione

Ovviamente si deve cambiare di nuovo per la costruzione di un'applicazione console destinata a funzionare al di fuori della IDE.

(testato con Visual Studio 2008 e il 2010, si aspettano che dovrebbe funzionare in queste ultime versioni troppo)

+0

Questo funziona. Grazie. – Kenci

+0

Questo è un modo migliore se si desidera copiare rapidamente i risultati dell'applicazione. –

+0

Perché Console.Writeline non funziona in un'applicazione Console? Questo suona molto contro intuitivo. – sydd

1

Se si sta sviluppando un'applicazione a riga di comando, è possibile utilizzare anche Console.ReadLine() alla fine del codice di attendere il Inserire la pressione del tasto prima di chiudere la finestra della console in modo da poter leggere l'output. Tuttavia, entrambe le risposte di Traccia e Debug pubblicate sopra sono opzioni migliori.

Problemi correlati