ConsoleKeyInfo Structure
Describes the console key that was pressed, including the character represented by the console key and the state of the SHIFT, ALT, and CTRL modifier keys.
Assembly: mscorlib (in mscorlib.dll)
| Name | Description | |
|---|---|---|
![]() | ConsoleKeyInfo(Char, ConsoleKey, Boolean, Boolean, Boolean) | Initializes a new instance of the ConsoleKeyInfo structure using the specified character, console key, and modifier keys. |
| Name | Description | |
|---|---|---|
![]() | Key | Gets the console key represented by the current ConsoleKeyInfo object. |
![]() | KeyChar | Gets the Unicode character represented by the current ConsoleKeyInfo object. |
![]() | Modifiers | Gets a bitwise combination of System.ConsoleModifiers values that specifies one or more modifier keys pressed simultaneously with the console key. |
| Name | Description | |
|---|---|---|
![]() | Equals(ConsoleKeyInfo) | Gets a value indicating whether the specified ConsoleKeyInfo object is equal to the current ConsoleKeyInfo object. |
![]() | Equals(Object) | Gets a value indicating whether the specified object is equal to the current ConsoleKeyInfo object.(Overrides ValueType.Equals(Object).) |
![]() | GetHashCode() | Returns the hash code for the current ConsoleKeyInfo object.(Overrides ValueType.GetHashCode().) |
![]() | GetType() | |
![]() | ToString() | Returns the fully qualified type name of this instance.(Inherited from ValueType.) |
| Name | Description | |
|---|---|---|
![]() ![]() | Equality(ConsoleKeyInfo, ConsoleKeyInfo) | Indicates whether the specified ConsoleKeyInfo objects are equal. |
![]() ![]() | Inequality(ConsoleKeyInfo, ConsoleKeyInfo) | Indicates whether the specified ConsoleKeyInfo objects are not equal. |
The ConsoleKeyInfo type is not intended to be created by users. Instead, it is returned to the user in response to calling the Console.ReadKey method.
The ConsoleKeyInfo object describes the ConsoleKey constant and Unicode character, if any, that correspond to the pressed console key. 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.
The following example demonstrates using a ConsoleKeyInfo object in a read operation.
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
Available since 2.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.



