C# Dersleri : Konsol Ekranı

C# içerisinde görsel ortamda Windows Form uygulamaları geliştirebileceğiniz gibi konsol adı verilen cmd benzeri siyah ekranlarda da uygulamalar geliştirebilirsiniz. Konsol ekranı içerisinde yazmış olduğunuz bütün kodlar System.Console sınıfı içerisinde saklanmaktadır. Bu dersimizde sizlere C# içerisinde konsol uygulamaları nasıl geliştirilir onu göstereceğiz. İşte C# içerisinde konsol uygulaması geliştirme.

C# içerisinde birden fazla birbirinden farklı kategorilerde uygulamalar geliştirebilirsiniz. Bunları kendi adlarında oluşturabilirsiniz. Konsol uygulaması geliştirmek istiyorsanız Yeni Proje bölümünden konsol uygulaması geliştir seçeneğine tıklamanız gerekir.

using System;
namespace ConsoleApp1
{
    class Program
    {  
        static void Main(string[] args)
        {
            
        }
    }
}

C# içerisinde bir konsol uygulaması oluşturduğunuzda yukarıdaki gibi bir kod ekranı ile karşılaşacaksınız. Kodlarımızın çoğunu static void Main içerisinde yazacağız.

Yazma ve Okuma İşlemleri

Konsol ekranında yazma ve yazdırma işlemleri için Write ve WriteLine, okuma ve okutma işlemleri için ise Read, ReadKey ve ReadLine komutları kullanılır.

Write ve WriteLine Metotları

Write metodu, kendisine gönderilen değeri konsol ekranında aynı satırda yazdırmak için kullanılır.

Console.Write("Merhaba");
Console.Write("Dünya");

Write metodunun kullanımı yukarıdaki örnekte verilmiştir. Programı bu şekilde çalıştırdığınızda ekranda Merhaba Dünya yazacaktır ve Dünya sözcüğü bir alt satırda tanımlanmış olmasına rağmen Write metodunun özelliğinden dolayı Merhaba sözcüğü ile yan yana gözükecektir.

WriteLine metodu ise, kendisine gönderilmiş değeri konsol ekranında yazdırırken Write metodunun aksine yazdırma işlemini bir alt satıra geçirerek yapar.

Console.WriteLine("Merhaba");
Console.WriteLine("Dünya");

Kodumuzu yukarıdaki gibi düzenlediğimizde ise ekranda,

Merhaba

Dünya

Yazacaktır. Dikkat ederseniz Merhaba sözcüğünden sonra gelen Dünya sözcüğü bir alt satıra geçti. Bu WriteLine metodu sayesinde gerçekleşti.

Read Metodu

Yazılan bir uygulamanın ekranda okunmasını sağlamak amacıyla kullanılır. Geriye sayısal (int) değer döndürür.

int yas = 20;
Console.Write(yas);
Console.Read();

Yukarıdaki örneği çalıştırdığınızda ekranda 20 yazacaktır.

ReadKey Metodu

Ekrana bir değer yazdırmak amacıyla kullanılır. Kullanıcı klavye tuşlarından birini bastığı zaman programı sonlandırır.

int yas = 20;
Console.Write(yas);
Console.ReadKey();

Örneğimizi yukarıdaki gibi düzenlediğinizde ekranda yeniden 20 yazacaktır ve herhangi bir tuşa bastığınızda program sonlanacaktır.

ReadLine Metodu

Ekrana bir değer yazdırmak amacıyla kullanılır. Kullanıcı klavyeden ENTER tuşuna bastığı zaman program sonlanır.

int yas = 20;
Console.Write(yas);
Console.ReadLine();

Örneğimizi çalıştırdığımızda ekranda yeniden 20 yazacaktır. Lakin bu sefer kullanıcı ENTER tuşuna bastığında program sonlanacaktır.

Konsol Ekranını Temizleme

Yazmış olduğunuz konsol uygulaması ekranını temizlemek için Console.Clear() metodu kullanılır. Kullanımı oldukça basittir.

int yas = 20;
Console.Write(yas);
Console.Clear();
Console.Read();

Yukarıdaki kodu çalıştırdığınızda ekranda hiçbir şey yazmayacaktır. Bunun sebebi ise üçüncü satırda yazmış olduğumuz Consol.Clear() metodundan kaynaklanmaktadır.

Bu metot yazıldığı satırdan önceki tüm işlemleri siler, ekranda göstermez.

Background Color ve Foreground Color Metotları

Bazen kullanıcılar yazmış oldukları uygulamaların arka plan rengini veya yazı rengini değiştirmek ister. Bu ve benzeri istekleri gerçekleştirmek için C# içerisinde background color ve foreground color komutları kullanılır.

Background color komutu, konsol ekranının rengini değiştirirken foreground color yazı rengini değiştirir. Kullanımları oldukça basittir.

Console.BackgroundColor = ConsoleColor.Red;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();
Console.WriteLine("Merhaba Dünya!!!");
Console.ReadLine(); 

Yukarıdaki örneğimizde ilk satırda zemin rengini belirledik ve rengi kırmızı olarak seçtik. İkinci satırda yazı rengini belirledik ve rengi beyaz olarak atadık. Daha sonra ekranı temizledik. Yani ekranda daha önceden bir şeyler yazılıysa sildik.

Dördüncü satırda ekrana Merhaba Dünya yazdırdık. Beşinci satırda ise ENTER tuşuna basılınca programın sonlanmasını istedik. Programı çalıştırdığınızda karşınıza kırmızı zemine beyaz bir şekilde yazılmış Merhaba Dünya yazısı gelecektir.

Basılan Tuşun Hangi Tuş Olduğunu Öğrenme

Programı çalıştırdıktan sonra tüm işlemlerimizi gerçekleştirdikten sonra Read metodunu kullanarak programı sonlandırırız. Bunu yapmak için bir tuşa basmamız gerekmektedir.

Şimdi basit bir örnek yapalım ve hangi tuşa bastığımızı öğrenelim.

char x;
Console.Write("Merhaba Dünya");
x = (char)Console.Read();
Console.WriteLine(x + "tuşuna bastınız");
Console.ReadKey();

Programı çalıştırın ve <<a>> tuşuna basın. Ekranda a tuşuna bastınız yazacaktır. Read metodunu kullanarak ekranda basılan karakterleri okuyabilsek de F1, ENTER gibi özel karakterleri okuyamayız. ReadKey metodu yerine ConsoleKeyInfo metodunu kullanacağız.

Console.WriteLine("Merhaba Dünya");
ConsoleKeyInfo key = Console.ReadKey(true);
Console.WriteLine(key.Key.ToString() + "tuşuna bastınız");
Console.ReadLine();

Yukarıdaki kodu açıklayalım. İlk satırda ekrana Merhaba Dünya yazdırdık. Daha sonra bir alt satırda ConsoleKeyInfo metodunu kullandık. ConsoleKeyInfo metodundan yararlanıp key adında bir değişken oluşturduk ve kullanıcının basacağı tuşa bu değişkeni eşitledik. Daha sonra bir alt satırda kullanıcının basmış olduğu klavye tuşunu metinsel bir şekilde yazdırmasını istedik. Ve son olarak programın ReadLine ile sonlandırılmasını istedik.

Programı çalıştırıp ENTER tuşuna bastığımızda ekranda ENTER tuşuna bastınız yazacaktır.

ConsoleKeyInfo yapısı ENTER, F1, SPACE gibi özel karakteri yazdırmakta kullanılır. Lakin CTRL, ALT ve SHIFT gibi bir başka özel tuşlara basılıp basılmadığını algılamak için Modifiers özelliğinden yararlanır. Kullanımını aşağıdaki örnekte görelim. Örnek biraz karmaşık gözükebilir ama merak etmeyin.

Console.TreatControlCAsInput = true;
System.ConsoleKeyInfo key;
Console.WriteLine("Herhangi Bir Tuşa Basınız : ");
key = Console.ReadKey();
if ((key.Modifiers & ConsoleModifiers.Alt) != 0)
     Console.Write("ALT ");
if ((key.Modifiers & ConsoleModifiers.Control) != 0)
     Console.Write("Control ");
if ((key.Modifiers & ConsoleModifiers.Shift) != 0)
     Console.Write("Shift ");
Console.WriteLine(key.Key.ToString() + "tuşuna bastınız. ");
Console.ReadLine();

Yukarıdaki kodları programınıza ekleyin ve CTRL + C (örneğin) tuşuna basın. Program size CTRL c tuşuna bastınız diye mesaj verecektir.

Şimdi kodumuzu tek tek açıklayalım. İlk satırda biz kontrol değiştirici anahtar tanımlamasını true olarak belirledik.

İkinci satırda key adında ConsoleKeyInfo sınıfından bir değişken tanımladık. Daha sonra kullanıcıdan bir tuşa basmasını istedik ve key değişkeninin değerini kullanıcının yazmış olduğu değere eşitledik.

Daha sonra if kontrol yapısını kullanarak teker teker ALT, CONTROL ve SHIFT tuşlarına basılıp basılmadığını kontrol eden yapıyı oluşturduk ve bu üç tuştan hangisine basıldığını kendi if satırları içerisinde (örneğin Console.Write(“ALT”) gibi) yazdırmasını istedik.

Ve son olarak if kontrol yapılarının hemen altında tanımlamış olduğumuz key değişkenini ve tuşuna bastınız yazısını birleştirip ekrana yazdırarak programı tamamladık.

Set Cursor Position Metodu

Program içerisinde imleci istediğimiz bir koordinata getirmek için kullanılır. İki değer alır. Bunlar yatay koordinat ve dikey koordinattır.

Şimdi basit bir örnek yapalım.

Console.SetWindowSize(45, 15);
Console.SetCursorPosition(Console.WindowWidth / 3, Console.WindowHeight / 3);
Console.WriteLine("Leppit Akademi");
Console.ReadLine();

Örneğimizde ilk olarak ekranımızın boyutunu 45, 15 olarak ayarladık. Ardından imlecin genişlik değerini ve yükseklik değerini üçe böldük. Daha sonra ekrana Leppit Akademi yazdırdık. Ve programı çalıştırdık. Program çalıştığında Leppit Akademi belirtmiş olduğumuz değerlere göre bir yerde gözükecektir.

Uygulamaları Sonlandırma

Konsol uygulamalarını sonlandırmak için Environment.Exit() metodu kullanılır. Bazen bir işlem gerçekleştiğinde programın sonlanmasını diğer işlemlerin gözükmemesini isteyebiliriz. Bu ve benzeri durumlar için küçük bir örnek yapalım.

Console.WriteLine("Uygulamayı kapatmak istiyorsunuz. Emin misiniz? [E/H]");
string cevap  = Console.ReadLine();
if (cevap == "E")
    Environment.Exit(0);
else
    Console.WriteLine("Hayır mı?");
Console.ReadLine();

Programı çalıştırıp E tuşuna bastığınızda program kapanacaktır. H tuşuna bastığınızda ise ekranda Hayır mı? Yazacaktır.

Bugün sizlere C# içerisinde konsol uygulamalarını oluşturmayı anlattık. Anlamadığınız bir yer varsa bizimle buradan iletişime geçebilirsiniz.

C# eğitimlerimizin tamamına buradan ulaşabilirsiniz.

Visual Studio’yu buradan indirebilirsiniz.

Bir cevap yazın

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