Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Console.ReadKey (Boolean)

 

Publicado: octubre de 2016

Obtiene la siguiente tecla de carácter o de función presionada por el usuario. Opcionalmente, la tecla presionada se muestra en la ventana de la consola.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, UI = true)]
public static ConsoleKeyInfo ReadKey(
	bool intercept
)

Parámetros

intercept
Type: System.Boolean

Determina si la tecla presionada se muestra en la ventana de la consola. true para que no se muestre la tecla presionada; de lo contrario, false.

Valor devuelto

Type: System.ConsoleKeyInfo

Objeto que describe la constante ConsoleKey y el carácter Unicode, si existe, que corresponden a la tecla presionada de la consola. El objeto ConsoleKeyInfo también describe, en una combinación bit a bit de valores de ConsoleModifiers, si alguna de las teclas modificadoras Mayús, Alt o Ctrl se presionaron al mismo tiempo que la tecla de la consola.

Exception Condition
InvalidOperationException

La propiedad In se ha redirigido desde alguna otra secuencia distinta de la consola.

El ReadKey método espera, es decir, bloques en el subproceso que emite el ReadKey método, hasta que se presiona una tecla de carácter o de función. Puede presionar una tecla de carácter o de función en combinación con uno o más teclas modificadoras MAYÚS, Ctrl o Alt. Sin embargo, al presionar una tecla modificadora por sí solo no producirá la ReadKey método devuelva un valor.

Si el intercept parámetro es true, la tecla presionada se intercepta y no que se muestra en la ventana de consola; en caso contrario, se muestra la tecla presionada.

Dependiendo de la aplicación, puede usar el ReadKey método junto con el KeyAvailable propiedad.

El ReadKey método lee desde el teclado, incluso si la entrada estándar se redirige a un archivo con el SetIn método.

Uno de los más comunes usos de la ReadKey método consiste en que se detiene la ejecución del programa hasta que el usuario presiona una tecla y la aplicación finaliza o muestra una ventana de información adicional. En el ejemplo siguiente se usa el ReadKey(Boolean) método para esperar el usuario presione la tecla ENTRAR antes de terminar la aplicación. Tenga en cuenta que, si el usuario presiona cualquier otra clave, no se muestra en la consola.

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

En el ejemplo siguiente se usa el ReadKey(Boolean) método para mostrar información sobre la tecla presionada por un usuario sin eco esa clave en la consola.

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 '←')

.NET Framework
Disponible desde 2.0
Volver al principio
Mostrar: