Entrada de dados via teclado
📽 Veja esta vídeo-aula no Youtube
Aguardar o usuário pressionar qualquer tecla
Console.ReadKey
Console.ReadKey();
Para não exibir a tecla pressionada:
Console.ReadKey(true);
Para guardar informações sobre a tecla pressionada:
ConsoleKeyInfo teclaPressionada = Console.ReadKey(true);
teclaPressionada.Keychar
armazena o caractere visível da tecla pressionada (ex.:g
ao pressionarALT+G
,<vazio>
ao pressionarF12
);teclaPressionada.Key
armazena um código representando a tecla exata que foi pressionada (ex.:ConsoleKey.Enter
paraENTER
,ConsoleKey.UpArrow
casoSeta para Cima
), segundo esta tabela.teclaPressionada.Modifiers
permite verificar se as teclasALT
,SHIFT
eCTRL
estavam pressionadas em conjunto comteclaPressionada.Key
.
Console.Write("Pressione uma tecla...");
var tecla = Console.ReadKey(true);
Console.Write("\nFoi pressionado ");
bool pressionadoAlt = (tecla.Modifiers & ConsoleModifiers.Alt) != 0;
bool pressionadoShift = (tecla.Modifiers & ConsoleModifiers.Shift) != 0;
bool pressionadoControl = (tecla.Modifiers & ConsoleModifiers.Control) != 0;
if (pressionadoAlt) Console.Write("ALT+");
if (pressionadoShift) Console.Write("SHIFT+");
if (pressionadoControl) Console.Write("CTRL+");
Console.WriteLine(tecla.Key);
Aguardar o usuário digitar uma sequência de teclas finalizadas por ENTER
Console.ReadLine
Console.ReadLine();
Guardar o conteúdo digitado em uma variável
string textoDigitado = Console.ReadLine()!;
Exibir o conteúdo da variável
Console.Write("Digite seu nome: ");
string textoDigitado = Console.ReadLine()!;
Console.Write("Olá, ");
Console.Write(textoDigitado);
Console.WriteLine("!");
Console.WriteLine("Pressione uma tecla para continuar...");
Console.ReadKey();
Resultado
PS C:\Users\ermogenes\Desktop\code\ExemploConsole> dotnet run
Digite seu nome: Ermogenes
Olá, Ermogenes!
Pressione uma tecla para continuar...
PS C:\Users\ermogenes\Desktop\code\ExemploConsole>
Limpar o buffer de teclado
while (Console.KeyAvailable) Console.ReadKey(true);