ReadKey() metodu kullanıcının kalvyeden bir tuşa basıncaya kadar gösterilmesi gereken bilginin ekranda bulunmasını sağlar. Ayrıca programın sonlandırılması için klavyede yer alan tanımlı bir tuşun basılıp basılmadığını kontrol eder. Bu metod ile klavyede yer alan tüm tuşlara görev ataması yapabilirsiniz. Ayrıca bu metod ile Ctrl, Shift, Alt tuş kombinasyonlarını da kontrol edebilirsiniz. Şimdi bununla ilgili örneklerimizi yapalım.
DateTime dat = DateTime.Now;
Console.WriteLine("Tarih ve saat: {0:d} at {0:t}", dat);
TimeZoneInfo tz = TimeZoneInfo.Local;
Console.WriteLine("Zaman Tanımı: {0}\n",
tz.IsDaylightSavingTime(dat) ?
tz.DaylightName : tz.StandardName);
Console.Write("Çıkmak için <Enter> tuşuna basın... ");
while (Console.ReadKey().Key != ConsoleKey.Enter) { }
Bu uygulamamızda Ctrl, Alt, Shift tuş kombinasyonları kontrol edilmektedir.
ConsoleKeyInfo cki;
Console.TreatControlCAsInput = true;
Console.WriteLine("CTL, ALT, ve SHIFT ile birlikte diğer tuşlara basınız.");
Console.WriteLine("Çıkmak için (Esc) tuşuna basınız: \n");
do
{
cki = Console.ReadKey();
Console.Write(" --- Bastınız ");
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);
Kullanıcı tarafından basılan tuşun Console ekranında görüntülenip görüntülenmemesi için ReadKey() metonunun yanında bool tipinde bir parametre kullanabilirsiniz.
ReadKey(true) : Kullanıcının bastığı tuş console ekranında görüntülenmez.
ReadKey(false) : Kullanıcının bastığı tuş console ekranında görüntülenir.