ConsoleKeyInfo Struct

Definizione

Descrive il tasto della console premuto, incluso il carattere rappresentato dal tasto della console e lo stato dei tasti di modifica MAIUSC, ALT e CTRL.

public value class ConsoleKeyInfo : IEquatable<ConsoleKeyInfo>
public value class ConsoleKeyInfo
public readonly struct ConsoleKeyInfo : IEquatable<ConsoleKeyInfo>
public struct ConsoleKeyInfo
public readonly struct ConsoleKeyInfo
[System.Serializable]
public struct ConsoleKeyInfo
type ConsoleKeyInfo = struct
[<System.Serializable>]
type ConsoleKeyInfo = struct
Public Structure ConsoleKeyInfo
Implements IEquatable(Of ConsoleKeyInfo)
Public Structure ConsoleKeyInfo
Ereditarietà
ConsoleKeyInfo
Attributi
Implementazioni

Esempio

Nell'esempio seguente viene illustrato l'uso di un ConsoleKeyInfo oggetto in un'operazione di lettura.

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
open System

// Prevent example from ending if CTL+C is pressed.
Console.TreatControlCAsInput <- true

printfn "Press any combination of CTL, ALT, and SHIFT, and a console key."
printfn "Press the Escape (Esc) key to quit: \n"

let mutable cki = Unchecked.defaultof<ConsoleKeyInfo>

while cki.Key <> ConsoleKey.Escape do
    cki <- Console.ReadKey()
    printf " --- You pressed "
    if int (cki.Modifiers &&& ConsoleModifiers.Alt) <> 0 then printf "ALT+"
    if int (cki.Modifiers &&& ConsoleModifiers.Shift) <> 0 then printf "SHIFT+"
    if int (cki.Modifiers &&& ConsoleModifiers.Control) <> 0 then printf "CTL+"
    printfn $"{cki.Key}"


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

Commenti

Il ConsoleKeyInfo tipo non deve essere creato dagli utenti. Viene invece restituito all'utente in risposta alla chiamata al Console.ReadKey metodo .

L'oggetto ConsoleKeyInfo descrive la costante e il ConsoleKey carattere Unicode, se presenti, che corrispondono al tasto della console premuto. L'oggetto ConsoleKeyInfo descrive inoltre, in una combinazione bit per bit di ConsoleModifiers valori, sia che uno o più tasti di modifica MAIUSC, ALT o CTRL siano stati premuti contemporaneamente con il tasto della console.

Costruttori

Nome Descrizione
ConsoleKeyInfo(Char, ConsoleKey, Boolean, Boolean, Boolean)

Inizializza una nuova istanza della ConsoleKeyInfo struttura utilizzando il carattere, la chiave della console e i tasti di modifica specificati.

Proprietà

Nome Descrizione
Key

Ottiene la chiave della console rappresentata dall'oggetto corrente ConsoleKeyInfo .

KeyChar

Ottiene il carattere Unicode rappresentato dall'oggetto corrente ConsoleKeyInfo .

Modifiers

Ottiene una combinazione bit per bit di ConsoleModifiers valori che specifica uno o più tasti di modifica premuti contemporaneamente con il tasto della console.

Metodi

Nome Descrizione
Equals(ConsoleKeyInfo)

Ottiene un valore che indica se l'oggetto specificato ConsoleKeyInfo è uguale all'oggetto corrente ConsoleKeyInfo .

Equals(Object)

Ottiene un valore che indica se l'oggetto specificato è uguale all'oggetto corrente ConsoleKeyInfo .

GetHashCode()

Restituisce il codice hash per l'oggetto corrente ConsoleKeyInfo .

Operatori

Nome Descrizione
Equality(ConsoleKeyInfo, ConsoleKeyInfo)

Indica se gli oggetti specificati ConsoleKeyInfo sono uguali.

Inequality(ConsoleKeyInfo, ConsoleKeyInfo)

Indica se gli oggetti specificati ConsoleKeyInfo non sono uguali.

Si applica a

Vedi anche