2013-06-06 29 views
22

Quando si esegue il programma, la finestra della console sembra funzionare e chiudersi. Come tenerlo aperto così posso vedere i risultati?Come mantenere aperta la finestra della console

class Program 
{ 
    public class StringAddString  
    {       
     public virtual void AddString() 
     { 
      var strings2 = new string[] { "1", "2", "3", "4", "5","6", "7", "8", "9"}; 

      Console.WriteLine(strings2); 
      Console.ReadLine(); 
     } 
    } 

    static void Main(string[] args) 
    {   
     StringAddString s = new StringAddString();    
    } 
} 

risposta

9

hai dimenticato di chiamare il metodo:

static void Main(string[] args) 
{   
    StringAddString s = new StringAddString(); 
    s.AddString(); 
} 

dovrebbe fermarsi la console, ma il risultato potrebbe non essere quello che vi aspettavate, si dovrebbe cambiare il codice un po ':

Console.WriteLine(string.Join(",", strings2)); 
59

Inserire una Console.Read() come ultima riga del programma. Questo gli impedirà di chiusura fino a quando si preme un tasto

static void Main(string[] args) 
{ 
    StringAddString s = new StringAddString(); 
    Console.Read();    
} 
+1

@ user1929393 AS TGH ha sottolineato, metterlo sotto di te 'static void Main'. Questo è il punto di partenza dell'esecuzione. –

+7

'Console.Read()' attende il tasto 'Invio'. Sto usando 'Console.ReadKey()' per "Premi qualsiasi tasto per continuare ..." –

14

ci sono due modi che conosco di

1) Console.ReadLine() alla fine del programma. Svantaggi, devi cambiare il tuo codice e ricordarti di estrarlo

2) Esegui all'esterno del debugger CONTROL-F5 questo apre una finestra di console al di fuori di Visual Studio e quella finestra non si chiuderà al termine. Vantaggio, non è necessario modificare il codice. Svantaggio, se c'è un'eccezione, non verrà rilasciata nel debugger (tuttavia, quando si ottengono eccezioni, è possibile semplicemente rieseguire il debugger)

1

Utilizzare Console.Readline() alla fine. Il proprio codice non si chiuderà finché non lo chiuderai manualmente. Dal momento che Readline attende l'input che deve essere inserito per il tuo codice, la tua console rimarrà aperta finché non digiti un input.

1

Assicurarsi di utilizzare Console.ReadLine(); per impedire la chiusura del precedente messaggio Console.WriteLine("");.

21

Se si desidera mantenere aperta quando si esegue il debug, ma ancora lasciarlo chiudere normalmente quando non debug, si può fare qualcosa di simile:

if (System.Diagnostics.Debugger.IsAttached) Console.ReadLine(); 

Come le altre risposte hanno dichiarato, la chiamata a Console.ReadLine() manterrà la finestra aperta finché non verrà premuto enter, ma Console.ReadLine() verrà chiamato solo se il debugger è collegato.

6
Console.ReadKey(true); 

Questo comando è un po 'più bello di readline che passa solo quando si preme invio, e il vero parametro nasconde anche il cursore lampeggiante brutto durante la lettura del risultato :) allora qualsiasi sequenza di tasti termina

1

Write Console.ReadKey(); in l'ultima riga del metodo main(). Questa linea impedisce di finire la console. Spero ti possa aiutare.

0

È possibile gestire questo senza richiedere un input dell'utente.

Fase 1. Creare una ManualRestEvent all'inizio del thread principale

ManualResetEvent manualResetEvent = new ManualResetEvent(false); 

Fase 2. Attendere ManualResetEvent

manualResetEvent.WaitOne(); 

Passaggio 3.Per fermare

manualResetEvent.Set(); 
Problemi correlati