Console.KeyAvailable Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob ein Tastendruck im Eingabestream vorhanden ist.
public:
static property bool KeyAvailable { bool get(); };
public static bool KeyAvailable { get; }
static member KeyAvailable : bool
Public Shared ReadOnly Property KeyAvailable As Boolean
Eigenschaftswert
true
, wenn ein Tastendruck vorhanden ist, andernfalls false
.
Ausnahmen
E/A-Fehler
Standardeingabe wird nicht an die Tastatur gesendet, sondern in eine Datei umgeleitet.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie Sie mithilfe der KeyAvailable -Eigenschaft eine Schleife erstellen, die ausgeführt wird, bis eine Taste gedrückt wird.
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.
*/
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.
'
Hinweise
Der Eigenschaftswert wird sofort zurückgegeben. Das heißt, die KeyAvailable -Eigenschaft blockiert die Eingabe erst, wenn ein Tastendruck verfügbar ist.
Verwenden Sie die KeyAvailable -Eigenschaft nur in Verbindung mit der ReadKey -Methode, nicht mit den Read Methoden oder ReadLine .