Console.KeyAvailable Propiedad

Definición

Obtiene un valor que indica si hay disponible una acción de presionar una tecla en el flujo de entrada.Gets a value indicating whether a key press is available in the input stream.

public:
 static property bool KeyAvailable { bool get(); };
public static bool KeyAvailable { get; }
member this.KeyAvailable : bool
Public Shared ReadOnly Property KeyAvailable As Boolean

Valor de propiedad

true si hay disponible una acción de presionar una tecla; en caso contrario, false.true if a key press is available; otherwise, false.

Excepciones

Error de E/S.An I/O error occurred.

La entrada estándar se redirige a un archivo en lugar de al teclado.Standard input is redirected to a file instead of the keyboard.

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar la propiedad KeyAvailable para crear un bucle que se ejecute hasta que se presione una tecla.The following example demonstrates how to use the KeyAvailable property to create a loop that runs until a key is pressed.

using namespace System;
using namespace System::Threading;
int main()
{
   ConsoleKeyInfo cki;
   do
   {
      Console::WriteLine( "\nPress a key to display; press the 'x' key to quit." );
      
      // Your code could perform some useful task in the following loop. However, 
      // for the sake of this example we'll merely pause for a quarter second.
      while ( Console::KeyAvailable == false )
            Thread::Sleep( 250 );
      cki = Console::ReadKey( true );
      Console::WriteLine( "You pressed the '{0}' key.", cki.Key );
   }
   while ( cki.Key != ConsoleKey::X );
}

/*
This example produces results similar to the following:

Press a key to display; press the 'x' key to quit.
You pressed the 'H' key.

Press a key to display; press the 'x' key to quit.
You pressed the 'E' key.

Press a key to display; press the 'x' key to quit.
You pressed the 'PageUp' key.

Press a key to display; press the 'x' key to quit.
You pressed the 'DownArrow' key.

Press a key to display; press the 'x' key to quit.
You pressed the 'X' key.
*/
using System;
using System.Threading;

class Sample
{
    public static void Main()
    {
       ConsoleKeyInfo cki;

       do {
           Console.WriteLine("\nPress a key to display; press the 'x' key to quit.");

           // Your code could perform some useful task in the following loop. However,
           // for the sake of this example we'll merely pause for a quarter second.

           while (Console.KeyAvailable == false)
               Thread.Sleep(250); // Loop until input is entered.

           cki = Console.ReadKey(true);
           Console.WriteLine("You pressed the '{0}' key.", cki.Key);
        } while(cki.Key != ConsoleKey.X);
    }
}
/*
This example produces results similar to the following:

Press a key to display; press the 'x' key to quit.
You pressed the 'H' key.

Press a key to display; press the 'x' key to quit.
You pressed the 'E' key.

Press a key to display; press the 'x' key to quit.
You pressed the 'PageUp' key.

Press a key to display; press the 'x' key to quit.
You pressed the 'DownArrow' key.

Press a key to display; press the 'x' key to quit.
You pressed the 'X' key.
*/
Imports System.Threading

Class Sample
   Public Shared Sub Main()
      Dim cki As ConsoleKeyInfo
      
      Do
         Console.WriteLine(vbCrLf & "Press a key to display; press the 'x' key to quit.")

         ' Your code could perform some useful task in the following loop. However, 
         ' for the sake of this example we'll merely pause for a quarter second.
         
         While Console.KeyAvailable = False
            Thread.Sleep(250) ' Loop until input is entered.
         End While
         cki = Console.ReadKey(True)
         Console.WriteLine("You pressed the '{0}' key.", cki.Key)
      Loop While cki.Key <> ConsoleKey.X
   End Sub 
End Class 
'This example produces results similar to the following:
'
'Press a key to display; press the 'x' key to quit.
'You pressed the 'H' key.
'
'Press a key to display; press the 'x' key to quit.
'You pressed the 'E' key.
'
'Press a key to display; press the 'x' key to quit.
'You pressed the 'PageUp' key.
'
'Press a key to display; press the 'x' key to quit.
'You pressed the 'DownArrow' key.
'
'Press a key to display; press the 'x' key to quit.
'You pressed the 'X' key.
'

Comentarios

El valor de la propiedad se devuelve inmediatamente; es decir, la propiedad KeyAvailable no bloquea la entrada hasta que esté disponible una acción de presionar una tecla.The property value is returned immediately; that is, the KeyAvailable property does not block input until a key press is available.

Use la propiedad KeyAvailable junto con el método ReadKey, no los métodos Read o ReadLine.Use the KeyAvailable property in conjunction with only the ReadKey method, not the Read or ReadLine methods.

Se aplica a