2012-07-16 37 views

Respuesta

391
Console.ReadLine(); 

o

Console.ReadKey(); 

ReadLine() espera a , ReadKey() espera a cualquier tecla (excepto para las teclas de modificación).

Editar: robó el símbolo de la llave de Darin.

+2

" 'consola' no contiene una definición para 'ReadKey' en asp.net 5 consola App" aparece, entra aquí: http://stackoverflow.com/questions/30588478/console-does -not-contain-a-definition-for-readkey-in-asp-net-5-console-app –

+9

Esto es realmente una mala respuesta porque le da al OP lo que pidió en lugar de lo que necesita. Decir al OP que rompa su software para que funcione en la forma en que lo lanza es solo un mal consejo. Entre otras cosas, hace que sea imposible usar el programa en una tubería. –

+1

La respuesta de Silva es mejor, ejecutar con Control-F5 – Del

33

Console.ReadLine() que esperar a que el usuario Introduzca o Console.ReadKey que esperar a que cualquier tecla.

23

Uso:

Console.ReadKey(); 

Para que se cierre cuando alguien presiona cualquier tecla o:

Console.ReadLine(); 

Para cuando el usuario escribe algo y pulsa Intro.

113

Usted sólo puede compilar (comience a depurar) su trabajo con Ctrl +F5.

Pruébalo. Siempre lo hago y la consola me muestra mis resultados abiertos. No se necesita código adicional.

+12

Ctrl + F5 reconstruye la aplicación (si es necesario) y la ejecuta * sin depuración * (es decir, el depurador no está conectado) en una nueva ventana de consola donde, después de que la aplicación ha salido, se ejecuta un comando 'pausa 'o similar en el la misma ventana. La 'pausa 'sirve para darle la oportunidad de leer la salida antes de que se cierre la ventana de la consola. Cuando la aplicación se utiliza desde la línea de comandos, no es necesaria ninguna pausa, ya que la ventana de la consola no se cierra después de que un comando ha finalizado. –

+2

@ToolmakerSteve Se votó en aumento porque es la mejor solución al problema que está teniendo el OP. –

+1

@ToolmakerSteve, esto es lo que estoy buscando. Sé ReadLine() y Read() y quería evitar eso. – VivekDev

34

Pruebe Ctrl + F5 en Visual Studio para ejecutar su programa, esto agregará una pausa con "Presione cualquier tecla para continuar ..." automáticamente sin ninguna función Console.Readline() o ReadKey().

6

Como alternativa, puede retrasar el cierre usando el siguiente código:

System.Threading.Thread.Sleep(1000); 

Nota del Sleep está utilizando milisegundos.

+8

Thread.Sleep (TimeSpan.FromSeconds (1)) si alguien quería trabajar mentalmente con los segundos –

+2

'System.Threading.Thread.Sleep (-1)' para dormir indefinidamente. – Acidic

12

Ctrl + F5 es mejor, porque no necesita líneas adicionales. Y puede, al final, presionar entrar y salir del modo de ejecución.

Pero cuando inicia un programa con F5 y pone un punto de interrupción, puede depurar su aplicación y eso le brinda otras ventajas.

4

Esas soluciones mencionadas cambian el funcionamiento de su programa.

Puede, por supuesto, poner #if DEBUG y #endif alrededor de las llamadas de la Consola, pero si realmente desea evitar que la ventana se cierre solo en su máquina dev bajo Visual Studio o si VS no se ejecuta solo si lo configura explícitamente, y no desea el molesto 'Press any key to exit...' cuando se ejecuta desde la línea de comandos, el camino a seguir es usar la API System.Diagnostics.Debugger.

Si solo desea que funcione en DEBUG, simplemente ajuste este código en un método [Conditional("DEBUG")] void BreakConditional().

// Test some configuration option or another 
bool launch; 
var env = Environment.GetEnvironmentVariable("LAUNCH_DEBUGGER_IF_NOT_ATTACHED"); 
if (!bool.TryParse(env, out launch)) 
    launch = false; 

// Break either if a debugger is already attached, or if configured to launch 
if (launch || Debugger.IsAttached) { 
    if (Debugger.IsAttached || Debugger.Launch()) 
     Debugger.Break(); 
} 

Esto también funciona para depurar programas que necesitan privilegios elevados o que necesitan poder elevarse.

4

Si no desea que el programa se cierre aunque un usuario presione cualquier tecla;

while (true) { 
     System.Console.ReadKey();     
};//This wont stop app 
+0

esto crea un bucle infinito. Casi nunca una buena idea. –

+0

Está esperando en la tecla de lectura para no hacer bucles continuamente, esto tiene sus aplicaciones. Si tiene otro manejo para controlar la aplicación, esta es una solución viable. ¡Hasta el infinito y más allá! :) – Hariboo

+0

Digamos que detecta una pulsación de tecla, ¿entonces qué? Solo espera la siguiente pulsación de tecla. No sale del circuito. Simplemente diga "Usar' System.Console.Readkey() '" en lugar de confundir el problema con un ejemplo roto. Aun así, usar un bucle infinito debería tratarse como usando 'goto'. ¡Es agradable poder cuando lo necesitas pero no usarlo solo porque puedes! Finalmente, insertar un 'presionar cualquier tecla para continuar' en una aplicación que no debería necesitarlo es un truco kludgy. Esta no es la solución al problema del OP. Todas las respuestas en esta pregunta son incorrectas, excepto la de @Slobodan Stanković –

Cuestiones relacionadas