Console.ReadKey Console.ReadKey Console.ReadKey Console.ReadKey Method

Definition

Ruft die nächste vom Benutzer gedrückte Zeichen- oder Funktionstaste ab.Obtains the next character or function key pressed by the user.

Überlädt

ReadKey() ReadKey() ReadKey() ReadKey()

Ruft die nächste vom Benutzer gedrückte Zeichen- oder Funktionstaste ab.Obtains the next character or function key pressed by the user. Die gedrückte Taste wird im Konsolenfenster angezeigt.The pressed key is displayed in the console window.

ReadKey(Boolean) ReadKey(Boolean) ReadKey(Boolean) ReadKey(Boolean)

Ruft die nächste vom Benutzer gedrückte Zeichen- oder Funktionstaste ab.Obtains the next character or function key pressed by the user. Die gedrückte Taste wird optional im Konsolenfenster angezeigt.The pressed key is optionally displayed in the console window.

ReadKey() ReadKey() ReadKey() ReadKey()

Ruft die nächste vom Benutzer gedrückte Zeichen- oder Funktionstaste ab.Obtains the next character or function key pressed by the user. Die gedrückte Taste wird im Konsolenfenster angezeigt.The pressed key is displayed in the console window.

public:
 static ConsoleKeyInfo ReadKey();
public static ConsoleKeyInfo ReadKey ();
static member ReadKey : unit -> ConsoleKeyInfo
Public Shared Function ReadKey () As ConsoleKeyInfo

Gibt zurück

Ein Objekt, das die ConsoleKey-Konstante und ggf. das Unicode-Zeichen beschreibt, die der gedrückten Konsolentaste entsprechen.An object that describes the ConsoleKey constant and Unicode character, if any, that correspond to the pressed console key. Das ConsoleKeyInfo-Objekt beschreibt außerdem in einer bitweisen Kombination von ConsoleModifiers-Werten, ob eine oder mehrere der Modifizierertasten UMSCHALTTASTE, ALT oder STRG gleichzeitig mit der Konsolentaste gedrückt wurden.The ConsoleKeyInfo object also describes, in a bitwise combination of ConsoleModifiers values, whether one or more Shift, Alt, or Ctrl modifier keys was pressed simultaneously with the console key.

Ausnahmen

Die In-Eigenschaft wird von einem anderen Stream als der Konsole umgeleitet.The In property is redirected from some stream other than the console.

Beispiele

Eine der häufigsten Verwendungsmöglichkeiten ReadKey() der-Methode besteht darin, die Programmausführung anzuhalten, bis der Benutzer eine Taste drückt und die APP entweder beendet wird oder ein zusätzliches Informationsfenster anzeigt.One of the most common uses of the ReadKey() method is to halt program execution until the user presses a key and the app either terminates or displays an additional window of information. Im folgenden Beispiel wird die ReadKey() -Methode verwendet, um zu warten, bis der Benutzer die EINGABETASTE gedrückt hat, bevor die APP beendet wird.The following example uses the ReadKey() method to wait for the user to press the Enter key before terminating the app.

using System;

public class Example
{
   public static void Main()
   {
      DateTime dat = DateTime.Now;
      Console.WriteLine("The time: {0:d} at {0:t}", dat);
      TimeZoneInfo tz = TimeZoneInfo.Local;
      Console.WriteLine("The time zone: {0}\n", 
                        tz.IsDaylightSavingTime(dat) ?
                           tz.DaylightName : tz.StandardName);
      Console.Write("Press <Enter> to exit... ");
      while (Console.ReadKey().Key != ConsoleKey.Enter) {}
   }
}
// The example displays output like the following:
//     The time: 11/11/2015 at 4:02 PM:
//     The time zone: Pacific Standard Time
Module Example
   Public Sub Main()
      Dim dat As Date = Date.Now
      Console.WriteLine("The time: {0:d} at {0:t}", dat)
      Dim tz As TimeZoneInfo = TimeZoneInfo.Local
      Console.WriteLine("The time zone: {0}", 
                        If(tz.IsDaylightSavingTime(dat),
                           tz.DaylightName, tz.StandardName))
      Console.WriteLine()
      Console.Write("Press <Enter> to exit... ")
      Do While Console.ReadKey().Key <> ConsoleKey.Enter
      Loop
   End Sub
End Module
' The example displays the following output:
'     The time: 11/11/2015 at 4:02 PM
'     The time zone: Pacific Standard Time

Beachten Sie, dass bei dieser ReadKey Überladung der-Methode standardmäßig alle anzeigbaren Schlüssel wiederholt werden, die der Benutzer auf die Konsole drückt.Note that this overload of the ReadKey method by default echoes any displayable keys that the user presses to the console. Um diese zu unterdrücken, ReadKey müssen Sie die intercept -Methode truemit einem Argument von aufzurufen.To suppress them, call the ReadKey method with an intercept argument of true.

Im folgenden Beispiel wird die ReadKey() -Methode verwendet, um Informationen zu dem Schlüssel anzuzeigen, den der Benutzer gedrückt hat.The following example uses the ReadKey() method to display information about which key the user pressed.

using namespace System;

void main()
{
   ConsoleKeyInfo cki;
   // Prevent example from ending if CTL+C is pressed.
   Console::TreatControlCAsInput = true;

   Console::WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
   Console::WriteLine("Press the Escape (Esc) key to quit: \n");
   do 
   {
      cki = Console::ReadKey();
      Console::Write(" --- You pressed ");
      if((cki.Modifiers & ConsoleModifiers::Alt) != ConsoleModifiers()) Console::Write("ALT+");
      if((cki.Modifiers & ConsoleModifiers::Shift) != ConsoleModifiers()) Console::Write("SHIFT+");
      if((cki.Modifiers & ConsoleModifiers::Control) != ConsoleModifiers()) Console::Write("CTL+");
      Console::WriteLine(cki.Key.ToString());
   } while (cki.Key != ConsoleKey::Escape);
}
// This example displays output similar to the following:
//       Press any combination of CTL, ALT, and SHIFT, and a console key.
//       Press the Escape (Esc) key to quit:
//       
//       a --- You pressed A 
//       k --- You pressed ALT+K 
//       ► --- You pressed CTL+P 
//         --- You pressed RightArrow 
//       R --- You pressed SHIFT+R 
//                --- You pressed CTL+I 
//       j --- You pressed ALT+J 
//       O --- You pressed SHIFT+O 
//       § --- You pressed CTL+U }
using System;

class Example 
{
   public static void Main() 
   {
      ConsoleKeyInfo cki;
      // Prevent example from ending if CTL+C is pressed.
      Console.TreatControlCAsInput = true;

      Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
      Console.WriteLine("Press the Escape (Esc) key to quit: \n");
      do 
      {
         cki = Console.ReadKey();
         Console.Write(" --- You pressed ");
         if((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+");
         if((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+");
         if((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+");
         Console.WriteLine(cki.Key.ToString());
       } while (cki.Key != ConsoleKey.Escape);
    }
}
// This example displays output similar to the following:
//       Press any combination of CTL, ALT, and SHIFT, and a console key.
//       Press the Escape (Esc) key to quit:
//       
//       a --- You pressed A 
//       k --- You pressed ALT+K 
//       ► --- You pressed CTL+P 
//         --- You pressed RightArrow 
//       R --- You pressed SHIFT+R 
//                --- You pressed CTL+I 
//       j --- You pressed ALT+J 
//       O --- You pressed SHIFT+O 
//       § --- You pressed CTL+U 
Class Example
   Public Shared Sub Main()
      Dim cki As ConsoleKeyInfo
      ' Prevent example from ending if CTL+C is pressed.
      Console.TreatControlCAsInput = True

      Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.")
      Console.WriteLine("Press the Escape (Esc) key to quit: " + vbCrLf)
      Do
         cki = Console.ReadKey()
         Console.Write(" --- You pressed ")
         If (cki.Modifiers And ConsoleModifiers.Alt) <> 0 Then Console.Write("ALT+")
         If (cki.Modifiers And ConsoleModifiers.Shift) <> 0 Then Console.Write("SHIFT+")
         If (cki.Modifiers And ConsoleModifiers.Control) <> 0 Then Console.Write("CTL+")
         Console.WriteLine(cki.Key.ToString)
      Loop While cki.Key <> ConsoleKey.Escape
   End Sub 
End Class 
' This example displays output similar to the following:
'       Press any combination of CTL, ALT, and SHIFT, and a console key.
'       Press the Escape (Esc) key to quit:
'       
'       a --- You pressed A 
'       k --- You pressed ALT+K 
'       ► --- You pressed CTL+P 
'         --- You pressed RightArrow 
'       R --- You pressed SHIFT+R 
'                --- You pressed CTL+I 
'       j --- You pressed ALT+J 
'       O --- You pressed SHIFT+O 
'       § --- You pressed CTL+U 

Hinweise

Die ReadKey -Methode wartet, d. h. Blöcke auf dem Thread ReadKey , der die-Methode ausgibt, bis ein Zeichen oder eine Funktionstaste gedrückt wird.The ReadKey method waits, that is, blocks on the thread issuing the ReadKey method, until a character or function key is pressed. Ein Zeichen-oder Funktionsschlüssel kann in Kombination mit einem oder mehreren alt-, STRG-oder UMSCHALT-modifiziererschlüsseln gedrückt werden.A character or function key can be pressed in combination with one or more Alt, Ctrl, or Shift modifier keys. Das Drücken einer Modifizierertaste allein führt jedoch nicht dazu, ReadKey dass die-Methode zurückgibt.However, pressing a modifier key by itself will not cause the ReadKey method to return.

Abhängig von Ihrer Anwendung können Sie die ReadKey -Methode in Verbindung mit der KeyAvailable -Eigenschaft verwenden.Depending on your application, you might want to use the ReadKey method in conjunction with the KeyAvailable property.

Die ReadKey -Methode liest von der Tastatur, auch wenn die Standardeingabe mit der SetIn -Methode zu einer Datei umgeleitet wird.The ReadKey method reads from the keyboard even if the standard input is redirected to a file with the SetIn method.

Siehe auch

ReadKey(Boolean) ReadKey(Boolean) ReadKey(Boolean) ReadKey(Boolean)

Ruft die nächste vom Benutzer gedrückte Zeichen- oder Funktionstaste ab.Obtains the next character or function key pressed by the user. Die gedrückte Taste wird optional im Konsolenfenster angezeigt.The pressed key is optionally displayed in the console window.

public:
 static ConsoleKeyInfo ReadKey(bool intercept);
public static ConsoleKeyInfo ReadKey (bool intercept);
static member ReadKey : bool -> ConsoleKeyInfo
Public Shared Function ReadKey (intercept As Boolean) As ConsoleKeyInfo

Parameter

intercept
Boolean Boolean Boolean Boolean

Bestimmt, ob die gedrückte Taste im Konsolenfenster angezeigt werden soll.Determines whether to display the pressed key in the console window. true, wenn die gedrückte Taste nicht angezeigt werden soll, andernfalls false.true to not display the pressed key; otherwise, false.

Gibt zurück

Ein Objekt, das die ConsoleKey-Konstante und ggf. das Unicode-Zeichen beschreibt, die der gedrückten Konsolentaste entsprechen.An object that describes the ConsoleKey constant and Unicode character, if any, that correspond to the pressed console key. Das ConsoleKeyInfo-Objekt beschreibt außerdem in einer bitweisen Kombination von ConsoleModifiers-Werten, ob eine oder mehrere der Modifizierertasten UMSCHALTTASTE, ALT oder STRG gleichzeitig mit der Konsolentaste gedrückt wurden.The ConsoleKeyInfo object also describes, in a bitwise combination of ConsoleModifiers values, whether one or more Shift, Alt, or Ctrl modifier keys was pressed simultaneously with the console key.

Ausnahmen

Die In-Eigenschaft wird von einem anderen Stream als der Konsole umgeleitet.The In property is redirected from some stream other than the console.

Beispiele

Eine der häufigsten Verwendungsmöglichkeiten ReadKey der-Methode besteht darin, die Programmausführung anzuhalten, bis der Benutzer eine Taste drückt und die APP entweder beendet wird oder ein zusätzliches Informationsfenster anzeigt.One of the most common uses of the ReadKey method is to halt program execution until the user presses a key and the app either terminates or displays an additional window of information. Im folgenden Beispiel wird die ReadKey(Boolean) -Methode verwendet, um zu warten, bis der Benutzer die EINGABETASTE gedrückt hat, bevor die APP beendet wird.The following example uses the ReadKey(Boolean) method to wait for the user to press the Enter key before terminating the app. Beachten Sie Folgendes: Wenn der Benutzer einen anderen Schlüssel drückt, wird er nicht in der Konsole angezeigt.Note that, if the user presses any other key, it is not echoed to the console.

using System;

public class Example
{
   public static void Main()
   {
      DateTime dat = DateTime.Now;
      Console.WriteLine("The time: {0:d} at {0:t}", dat);
      TimeZoneInfo tz = TimeZoneInfo.Local;
      Console.WriteLine("The time zone: {0}\n", 
                        tz.IsDaylightSavingTime(dat) ?
                           tz.DaylightName : tz.StandardName);
      Console.Write("Press <Enter> to exit... ");
      while (Console.ReadKey(true).Key != ConsoleKey.Enter) {}
   }
}
// The example displays output like the following:
//     The time: 11/11/2015 at 4:02 PM:
//     The time zone: Pacific Standard Time
Module Example
   Public Sub Main()
      Dim dat As Date = Date.Now
      Console.WriteLine("The time: {0:d} at {0:t}", dat)
      Dim tz As TimeZoneInfo = TimeZoneInfo.Local
      Console.WriteLine("The time zone: {0}", 
                        If(tz.IsDaylightSavingTime(dat),
                           tz.DaylightName, tz.StandardName))
      Console.WriteLine()
      Console.Write("Press <Enter> to exit... ")
      Do While Console.ReadKey(True).Key <> ConsoleKey.Enter
      Loop
   End Sub
End Module
' The example displays the following output:
'     The time: 11/11/2015 at 4:02 PM
'     The time zone: Pacific Standard Time

Im folgenden Beispiel wird die ReadKey(Boolean) -Methode verwendet, um Informationen über den von einem Benutzer gedrückten Schlüssel anzuzeigen, ohne diesen Schlüssel an der Konsole wiederzugeben.The following example uses the ReadKey(Boolean) method to display information about the key pressed by a user without echoing that key to the console.

using namespace System;

void main()
{
   ConsoleKeyInfo cki;
   // Prevent example from ending if CTL+C is pressed.
   Console::TreatControlCAsInput = true;

   Console::WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
   Console::WriteLine("Press the Escape (Esc) key to quit: \n");
   do {
      cki = Console::ReadKey(true);
      Console::Write("You pressed ");
      if ((cki.Modifiers & ConsoleModifiers::Alt) != ConsoleModifiers()) Console::Write("ALT+");
      if ((cki.Modifiers & ConsoleModifiers::Shift) != ConsoleModifiers()) Console::Write("SHIFT+");
      if ((cki.Modifiers & ConsoleModifiers::Control) != ConsoleModifiers()) Console::Write("CTL+");
      Console::WriteLine("{0} (character '{1}')", cki.Key, cki.KeyChar);
   } while (cki.Key != ConsoleKey::Escape);
}
// This example displays output similar to the following:
//       Press any combination of CTL, ALT, and SHIFT, and a console key.
//       Press the Escape (Esc) key to quit:
//       
//       You pressed CTL+A (character '☺')
//       You pressed C (character 'c')
//       You pressed CTL+C (character '♥')
//       You pressed K (character 'k')
//       You pressed ALT+I (character 'i')
//       You pressed ALT+U (character 'u')
//       You pressed ALT+SHIFT+H (character 'H')
//       You pressed Escape (character '←')
using System;

class Example 
{
   public static void Main() 
   {
      ConsoleKeyInfo cki;
      // Prevent example from ending if CTL+C is pressed.
      Console.TreatControlCAsInput = true;

      Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
      Console.WriteLine("Press the Escape (Esc) key to quit: \n");
      do {
         cki = Console.ReadKey(true);
         Console.Write("You pressed ");
         if ((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+");
         if ((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+");
         if ((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+");
         Console.WriteLine("{0} (character '{1}')", cki.Key, cki.KeyChar);
      } while (cki.Key != ConsoleKey.Escape);
   }
}
// This example displays output similar to the following:
//       Press any combination of CTL, ALT, and SHIFT, and a console key.
//       Press the Escape (Esc) key to quit:
//       
//       You pressed CTL+A (character '☺')
//       You pressed C (character 'c')
//       You pressed CTL+C (character '♥')
//       You pressed K (character 'k')
//       You pressed ALT+I (character 'i')
//       You pressed ALT+U (character 'u')
//       You pressed ALT+SHIFT+H (character 'H')
//       You pressed Escape (character '←')
Class Example
   Public Shared Sub Main()
      Dim cki As ConsoleKeyInfo
      ' Prevent example from ending if CTL+C is pressed.
      Console.TreatControlCAsInput = True

      Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.")
      Console.WriteLine("Press the Escape (Esc) key to quit: " + vbCrLf)
      Do
         cki = Console.ReadKey(True)
         Console.Write("You pressed ")
         If (cki.Modifiers And ConsoleModifiers.Alt) <> 0 Then Console.Write("ALT+")
         If (cki.Modifiers And ConsoleModifiers.Shift) <> 0 Then Console.Write("SHIFT+")
         If (cki.Modifiers And ConsoleModifiers.Control) <> 0 Then Console.Write("CTL+")
         Console.WriteLine("{0} (character '{1}')", cki.Key, cki.KeyChar)
      Loop While cki.Key <> ConsoleKey.Escape
   End Sub
End Class 
' This example displays output similar to the following:
'       Press any combination of CTL, ALT, and SHIFT, and a console key.
'       Press the Escape (Esc) key to quit:
'       
'       You pressed CTL+A (character '☺')
'       You pressed C (character 'c')
'       You pressed CTL+C (character '♥')
'       You pressed K (character 'k')
'       You pressed ALT+I (character 'i')
'       You pressed ALT+U (character 'u')
'       You pressed ALT+SHIFT+H (character 'H')
'       You pressed Escape (character '←')

Hinweise

Die ReadKey -Methode wartet, d. h. Blöcke auf dem Thread ReadKey , der die-Methode ausgibt, bis ein Zeichen oder eine Funktionstaste gedrückt wird.The ReadKey method waits, that is, blocks on the thread issuing the ReadKey method, until a character or function key is pressed. Ein Zeichen-oder Funktionsschlüssel kann in Kombination mit einem oder mehreren alt-, STRG-oder UMSCHALT-modifiziererschlüsseln gedrückt werden.A character or function key can be pressed in combination with one or more Alt, Ctrl, or Shift modifier keys. Das Drücken einer Modifizierertaste allein führt jedoch nicht dazu, ReadKey dass die-Methode zurückgibt.However, pressing a modifier key by itself will not cause the ReadKey method to return.

Wenn der intercept -Parameter trueist, wird die gedrückte Taste abgefangen und nicht im Konsolenfenster angezeigt. andernfalls wird die gedrückte Taste angezeigt.If the intercept parameter is true, the pressed key is intercepted and not displayed in the console window; otherwise, the pressed key is displayed.

Abhängig von Ihrer Anwendung können Sie die ReadKey -Methode in Verbindung mit der KeyAvailable -Eigenschaft verwenden.Depending on your application, you might want to use the ReadKey method in conjunction with the KeyAvailable property.

Die ReadKey -Methode liest von der Tastatur, auch wenn die Standardeingabe mit der SetIn -Methode zu einer Datei umgeleitet wird.The ReadKey method reads from the keyboard even if the standard input is redirected to a file with the SetIn method.

Siehe auch

Gilt für: