Condividi tramite


Console.KeyAvailable Proprietà

Definizione

Ottiene un valore che indica se un tasto è disponibile nel flusso di input.

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

Valore della proprietà

true se è disponibile una pressione del tasto; in caso contrario, false.

Eccezioni

Si è verificato un errore di I/O.

L'input standard viene reindirizzato a un file anziché alla tastiera.

Esempio

Nell'esempio seguente viene illustrato come utilizzare la KeyAvailable proprietà per creare un ciclo che viene eseguito fino a quando non viene premuto un tasto.

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)
               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.
*/
open System
open System.Threading

let mutable cki = Unchecked.defaultof<ConsoleKeyInfo>

while cki.Key <> ConsoleKey.X do
    printfn "\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 not Console.KeyAvailable do
        Thread.Sleep 250 // Loop until input is entered.

    cki <- Console.ReadKey true
    printfn $"You pressed the '{cki.Key}' key."


// 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.
'

Commenti

Il valore della proprietà viene restituito immediatamente; ovvero, la proprietà non blocca l'input KeyAvailable finché non è disponibile un tasto.

Utilizzare la KeyAvailable proprietà insieme solo al ReadKey metodo , non ai Read metodi o ReadLine .

Si applica a