C#

C# Konsol Basılan Tuşu Öğrenme

Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde konsol uygulamasında basılan tuşun hangi tuş olduğunu öğrenmeyi anlatacağım. Hadi başlayalım !

Konsol uygulamasında basılan tuşu öğrenmek istediğimiz için Visual Studio aracılığıyla bir tane konsol projesi oluşturuyoruz. Tuşu okuyabilmemiz için tabiki öncelikle tuşa basılması gerek (:)) ve tuş basmayı okumamız gerekiyor. Tuş okumasını System kütüphanesi altında bulunan Console sınıfına ait olan statik tipteki yani bulunduğu sınıfın yeni bir nesnesi türetilmeden doğrudan erişilebilen tipte olan ReadKey() fonksiyonu ile yapıyoruz. Bu fonksiyon klavyeyi dinleyerek tuşa basılmasını bekliyor ve tuşa basıldığında ise tetikleniyor. Ayrıca geriye ConsoleKeyInfo sınıfından türetilmiş bir nesne döndürüyor. Bu nesne sayesinde basılan tuşu algılayabiliyoruz.

Öncelikle Console.ReadKey() fonksiyonundan gelen değer bir değişkene atayalım;

ConsoleKeyInfo cki = Console.ReadKey();

Evet artık basılan tuşu algılayabiliriz. Tuşu öğrenmek için oluşturmuş olduğumuz cki nesnesi altında bulunan Key ve KeyChar propertilerini kullanabiliyoruz. Key propertisi ile tuşun C# nesnesi olarak adını, KeyChar ile de tuşu char değişkeni olarak öğrenebiliriz. Örneğin;

Console.WriteLine(cki.Key.GetType());
Console.WriteLine(cki.KeyChar.GetType());

kod satırlarını yazıp projeyi çalıştırdıktan sonra herhangi bir tuşa basarsanız konsol ekranında

System.Char
System.ConsoleKey

yazdığını göreceksiniz. Yani Key propertisini kullanarak ConsoleKey sınıfı üzerinden basılan tuşu kıyaslayabiliyorken, KeyChar propertisi ile char tipinde kıyaslama yapabiliyoruz. Örneğin;

if(cki.Key == ConsoleKey.F1)
    Console.WriteLine("Basılan Tuş F1");
if(cki.KeyChar == 'a')
    Console.WriteLine("Basılan Tuş a");

gibi bir kullanım yapabiliriz. Fakat dikkat etmemiz gereken nokta şu; tek karakterden uzun tuşları KeyChar ile tespit edemiyoruz. Çünkü char tek karakterli ifadeleri tuttuğu ve örneğin F1 tuşu 2 karakterden oluşup char tipinde tutulamadığı için Console.WriteLine(cki.KeyChar); kod satırını yazıp projeyi çalıştırınca ve F1 tuşuna basınca herhangi bir şey yazılmadığını göreceksiniz. Bu yüzden Key propertisini kullanmayı öneriyorum.

Bu dersimizde bu kadardı, tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 1 Ortalama: 3]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu