CodeBlanks Logo Icon CodeBlanks

Console.ReadKey

C# kursu · Başlangıç · Ders 95/116

Console.ReadKey ile tek tuş okumayı öğrenirsin.

Console.ReadKey ile tek tuş

Console.ReadKey() metodu, kullanıcının bastığı tek bir tuşu okur. Enter beklemek yerine tuşa basılır basılmaz döner. Dönüş tipi ConsoleKeyInfo olup basılan tuşla ilgili çeşitli bilgiler içerir.

Örneğin ConsoleKeyInfo key = Console.ReadKey(); satırı, basılan tuşu key değişkenine koyar. Menü seçimi, devam etmek için tuşa basma ya da oyun tarzı uygulamalar için idealdir.

ReadKey(true) ile gizli tuş

Console.ReadKey(true) çağrısında true parametresi, basılan tuşun ekrana yazdırılmasını engeller. Buna "intercept" denir. Menü seçimlerinde tuşun ekranda görünmesini istemediğin durumlar için kullanışlıdır.

Örnek: ConsoleKeyInfo key = Console.ReadKey(true); satırı tuşu okur ama ekrana yazmaz. Böylece menü temiz kalır, yalnızca senin yazdırdığın metin görünür. Etkileşimli menülerde yaygın bir tekniktir.

KeyChar ve Key özellikleri

ConsoleKeyInfo yapısının iki sık kullanılan özelliği vardır: KeyChar basılan karakteri (char) verirken Key basılan tuşun ConsoleKey enum değerini verir. Karakter mi yoksa tuş mu lazım olduğuna göre uygun olanı seçersin.

Örneğin key.KeyChar 'a' karakterini verirken key.Key ConsoleKey.A değerini verir. Büyük-küçük harf, Shift durumu gibi etkenler KeyChar'ı etkiler ama Key aynı kalır.

Uygulama Tuşu oku ve karakterini yazdır

Console.ReadKey(true) ile bir tuşu key değişkenine oku. Sonra Console.WriteLine ile "Tuş: " + key.KeyChar ifadesini yazdır.

Örnek çözümü göster
ConsoleKeyInfo key = Console.ReadKey(true); ile tuşu oku, sonra WriteLine ile KeyChar'ı yazdır.
Örnek çözüm:
using System;

class Program
{
    static void Main()
    {
        ConsoleKeyInfo key = Console.ReadKey(true);
        Console.WriteLine("Tuş: " + key.KeyChar);
    }
}

Kendini test et

  1. Console.ReadKey()'in dönüş tipi nedir?

    var key = Console.ReadKey();
    • string
    • ConsoleKeyInfo
    • char
    • int
    Cevabı göster

    ConsoleKeyInfo — Doğru! ReadKey bir ConsoleKeyInfo yapısı döndürür.

  2. Tuşu gizlice oku

    Console.WriteLine("Devam etmek için bir tuşa bas");
    ConsoleKeyInfo key = ____;
    Console.WriteLine(key.KeyChar);
    Cevabı göster
    Console.WriteLine("Devam etmek için bir tuşa bas");
    ConsoleKeyInfo key = Console.ReadKey(true);
    Console.WriteLine(key.KeyChar);
  3. Özelliği açıklamasıyla eşleştir

    KeyChar
    Basılan karakter
    Key
    ConsoleKey enum değeri
    ReadKey(true)
    Tuşu ekrana yazmaz

Başlangıç bölümündeki tüm dersler