2010-09-22 24 views
10

Estoy escribiendo una aplicación de consola de muestra en VS2008. Ahora tengo un método Console.WriteLine() que muestra salida en la pantalla y luego está Console.ReadKey() que espera que el usuario finalice la aplicación.Clear Console Buffer

Si presiono Ingrese mientras se muestra el método Console.WriteLine(), la aplicación finaliza.

¿Cómo puedo borrar el búfer de entrada antes del método Console.ReadKey() para que no importa cuántas veces el usuario presiona el botón Entrar mientras se muestran los datos, el método Console.ReadKey() debería detener la aplicación?

Respuesta

22
while(Console.KeyAvailable) 
{ 
    Console.ReadKey(false); 
} 
Console.ReadKey(); 
+2

¿Puede explicar lo que acaba de hacer? –

+0

Muy agradable. ¡Yo no sabía sobre esto! @Soham: Lea sobre ['Console.KeyAvailable'] (http://msdn.microsoft.com/en-us/library/system.console.keyavailable.aspx) en MSDN y creo que se aclarará. –

+0

Console.KeyAvailable devuelve verdadero si hay una clave en el búfer de entrada. Console.ReadKey (falso) lee la clave del búfer sin mostrarla. Este ciclo debería borrar el buffer de entrada. – gandjustas