- 19 May 2021
- 48
- 15
Merhaba bu aralar C# öğreniyorum ve öğrenirken de yazmayı seviyorum. Yazdığım yazıları seri halinde paylaşmayı düşünüyorum. İyi okumalar.
Write; kendisine gönderilen değeri konsol ekranında aynı satıra yazmak için kullanılan metottur.
WriteLine; kendisine gönderilen değeri konsol ekranında aynı satıra yazıp imleci bir sonraki satıra geçirmek için kullanılan metottur.
Birden fazla değişkeni isteğimiz sıra ile yazdırmak istersek yer tutucuları yani aşağıdaki yöntemi kullanabiliriz.
Burada 100 0. index, 200 1. index, 300 ise 2. indexi temsil etmektedir.
Yani {2} 300'ü, {0} 100'ü, {1} 200'ü temsil etmektedir.
Yer tutucular sayesinde konsol ekranına yazı yazarken 1 değişkeni hızlı ve pratik bir şekiden konumlandırabiliriz.
Yer tutucuyu kullanarak konsol ekranındaki yazılan yazıları hizalayabiliriz. {0, 10} veya {0, -10} şeklinde 2. bir parametre kullanırız, - sola + ise yazıyı sağa kaydırır. Yer tutucu içerisinde belirtilen karakter sayısının girilen değere eşit ya da daha küçük olduğu durumlarda girilen değer, boşluk bırakılmadan aynen ekrana yazdırılır.
ReadLine; konsol ekranına girilen değeri okuyup string olarak bir değişkene atayan metottur.
Read; konsol ekranında girilen ilk karakteri okuyup ASCİİ karakterini int olarak bir değişkene atayan metotdur.
Konsol uygulamalarında kullanıcıdan sayısal bir değer alacağımız zaman ReadLine metodunu kullanmalıyız ama ReadLine metodu string bir değer döndürdüğü için bu değeri int bir değere döndürmeliyiz. Bu döndürme işlemi için örnek olarak Convert.ToInt32 veya Int16.Parse metodunu kullanabiliriz.
BackgroundColor metodu, konsol ekranında yazılan yazıların arkaplan renklerini değiştirirken ForegroundColor metodu ise yazı rengini değiştirmek için kullanılır.
Arka planı White ile beyaz yaptık ve yazı karakter rengini ise DarkRed ile koyu kırmızı yaptık.
Clear() Metodu sayesinde konsol ekranının tamamını beyaz olmasını sağladık.
Ayarların eski haline döndürmek için aşağıdaki gibi ResetColor metodunu kullanabiliriz.
Konsol ekranında basılan karakterleri Read() metodu ile okuyabilirsiniz.
Read metodu basılan karakter ASCİ tipinde algıladığı için (char) ile dönüşüm yapmak zorunda kaldık.
Read metodu ile karakterleri okuyabiliriz ama Enter , Spacebar, F2 gibi tuşlara basıldığını anlayamayız. Bunu için ReadKey ve ConsoleKeyInfo yapısını kullanmalıyız.
Burada System.ConsoleKeyInfo türünde basılanTus adlı bir değişken oluşturduk ve ReadKey metodu ile basılan tuşa o değişkene atadık.
Daha sonra basılanTus değişkenini ToString ile string türüne dönüştürdük, bunu nedeni basılanTus değişkeninin ConsoleKey tipinde olmasıdır inanmıyorsanız GetType() metodu ile bakabilirsiniz.
Kısaca burda F1 tuşuna basıldığında hesap miktarını gösteren, ECS tuşuna basıldığında System.Environment.Exit(0); ile konsol ekranını kapatan bir kod yazdık.
ConsoleKeyInfo tek başına Shift, Ctrl, Alt tuşlarına basılıp basılmadığını anlayamaz, bundan dolayı ConsoleKeyInfo yapısının Modifiers özeliğinin yardımını alacağız.
Burada Ctrl, Alt, Shift Tuşlarına basılıp basılmadığını anladığımız bir kod yazdık.
Konsol ekranın Ctrl+C, Ctrl+A gibi tuşlar özel işlemlerin kısayol tuşlarıdır, mesela Ctrl+C programı sonlandırır, bunu olmasını engellemek için Console.TreatControlCAsInput = true; kodunu kullandık ve bu sayede Ctrl+C, Ctrl+A gibi tuşlar artık okunabilir.
Eğer bunlar nerede işimize yarayacak diye sorarsanız Unity ile oyun geliştirirken baya işinize yarayabilir.
SetCursorPosıtıon; konsoldaki imlecin belirli bir konumda durmasını sağlar bu sayede konsol ekranında istediğimiz konumda yazı yazdırabiliriz.
Yukarıda SetWindowSize ile konsol pencere boyunu ayarladık ve SetCursorPosition'u kullanarak imlecin pozisyonunu ayarladık.
Ekrana rastgele konumlara 100 tane # karakterini koyan program:
Şimdilik konuyu burada bitiriyorum. Zamanla bütün konuları blog siteme ekleyeceğim ve dahasını öğrendikce güncelleyeceğim.Herkese iyi forumlar.
Write, WriteLine, Read ve ReadLine Metotları
Write; kendisine gönderilen değeri konsol ekranında aynı satıra yazmak için kullanılan metottur.
WriteLine; kendisine gönderilen değeri konsol ekranında aynı satıra yazıp imleci bir sonraki satıra geçirmek için kullanılan metottur.
C#:
Console.Write("Merhaba");
Console.Write("Dünya");
Kod:
MerhabaDünya
C#:
Console.WriteLine("Merhaba");
Console.Write("Dünya");
Kod:
Merhaba
Dünya
Birden fazla değişkeni isteğimiz sıra ile yazdırmak istersek yer tutucuları yani aşağıdaki yöntemi kullanabiliriz.
C#:
Console.WriteLine("{2}, {0}, {1}", 100, 200, 300);
Kod:
300, 100, 200
Burada 100 0. index, 200 1. index, 300 ise 2. indexi temsil etmektedir.
Yani {2} 300'ü, {0} 100'ü, {1} 200'ü temsil etmektedir.
Yer tutucular sayesinde konsol ekranına yazı yazarken 1 değişkeni hızlı ve pratik bir şekiden konumlandırabiliriz.
C#:
Console.WriteLine ("Adınız {0} Yaşınız {1}. Uygulamamıza hoşgeldiniz {0}" ,ad, yas);
Yer tutucuyu kullanarak konsol ekranındaki yazılan yazıları hizalayabiliriz. {0, 10} veya {0, -10} şeklinde 2. bir parametre kullanırız, - sola + ise yazıyı sağa kaydırır. Yer tutucu içerisinde belirtilen karakter sayısının girilen değere eşit ya da daha küçük olduğu durumlarda girilen değer, boşluk bırakılmadan aynen ekrana yazdırılır.
ReadLine; konsol ekranına girilen değeri okuyup string olarak bir değişkene atayan metottur.
Read; konsol ekranında girilen ilk karakteri okuyup ASCİİ karakterini int olarak bir değişkene atayan metotdur.
Konsol uygulamalarında kullanıcıdan sayısal bir değer alacağımız zaman ReadLine metodunu kullanmalıyız ama ReadLine metodu string bir değer döndürdüğü için bu değeri int bir değere döndürmeliyiz. Bu döndürme işlemi için örnek olarak Convert.ToInt32 veya Int16.Parse metodunu kullanabiliriz.
C#:
var boy = Convert.ToUInt32(Console.ReadLine());
var boy = Int16.Parse(Console.ReadLine());
BackgroundColor ve ForegroundColor Metotları
C#:
Console.BackgroundColor = ConsoleColor.White;
Console.ForegroundColor = ConsoleColor.DarkRed;
Console.Clear();
Console.WriteLine("Merhaba");
Console.ReadLine();
Arka planı White ile beyaz yaptık ve yazı karakter rengini ise DarkRed ile koyu kırmızı yaptık.
Clear() Metodu sayesinde konsol ekranının tamamını beyaz olmasını sağladık.
Ayarların eski haline döndürmek için aşağıdaki gibi ResetColor metodunu kullanabiliriz.
C#:
Console.ResetColor();
ConsoleKeyInfo
C#:
char tus;
Console.WriteLine("Bir Tuşa Basıp Sonra enter'a basınız.");
tus = (char)Console.Read();
Console.WriteLine(tus + " Tuşuna bastınız.");
Console.ReadKey();
Read metodu basılan karakter ASCİ tipinde algıladığı için (char) ile dönüşüm yapmak zorunda kaldık.
Read metodu ile karakterleri okuyabiliriz ama Enter , Spacebar, F2 gibi tuşlara basıldığını anlayamayız. Bunu için ReadKey ve ConsoleKeyInfo yapısını kullanmalıyız.
C#:
Console.WriteLine("Bir tuşa basınız:");
System.ConsoleKeyInfo basılanTus = Console.ReadKey(true);
Console.WriteLine(basılanTus.Key.ToString() + " tusuna bastınız");
Console.ReadKey();
Burada System.ConsoleKeyInfo türünde basılanTus adlı bir değişken oluşturduk ve ReadKey metodu ile basılan tuşa o değişkene atadık.
Daha sonra basılanTus değişkenini ToString ile string türüne dönüştürdük, bunu nedeni basılanTus değişkeninin ConsoleKey tipinde olmasıdır inanmıyorsanız GetType() metodu ile bakabilirsiniz.
C#:
var hesap = 1234;
Console.WriteLine("Hesabınızdaki parayı görmek için F1 tuşuna basınız...");
Console.WriteLine("Çıkış yapmak için ESC tuşuna basınız...");
System.ConsoleKeyInfo basılanTus = Console.ReadKey(true);
if (basılanTus.Key == ConsoleKey.Escape)
{
System.Environment.Exit(0);
}
if (basılanTus.Key == ConsoleKey.F1)
{
Console.WriteLine("Bakiye miktarınız : " + hesap);
}
Console.ReadKey();
Kısaca burda F1 tuşuna basıldığında hesap miktarını gösteren, ECS tuşuna basıldığında System.Environment.Exit(0); ile konsol ekranını kapatan bir kod yazdık.
ConsoleKeyInfo tek başına Shift, Ctrl, Alt tuşlarına basılıp basılmadığını anlayamaz, bundan dolayı ConsoleKeyInfo yapısının Modifiers özeliğinin yardımını alacağız.
C#:
Console.TreatControlCAsInput = true;
System.ConsoleKeyInfo basılanTus;
Console.WriteLine("Bir Tuşa Basınız");
basılanTus = Console.ReadKey();
if ((basılanTus.Modifiers & ConsoleModifiers.Alt) != 0)
Console.Write("Shift+");
else if ((basılanTus.Modifiers & ConsoleModifiers.Shift) != 0)
Console.Write("Alt+");
else if ((basılanTus.Modifiers & ConsoleModifiers.Control) != 0)
Console.Write("Ctrl+");
Console.WriteLine(basılanTus.Key.ToString());
Console.ReadLine();
Burada Ctrl, Alt, Shift Tuşlarına basılıp basılmadığını anladığımız bir kod yazdık.
Konsol ekranın Ctrl+C, Ctrl+A gibi tuşlar özel işlemlerin kısayol tuşlarıdır, mesela Ctrl+C programı sonlandırır, bunu olmasını engellemek için Console.TreatControlCAsInput = true; kodunu kullandık ve bu sayede Ctrl+C, Ctrl+A gibi tuşlar artık okunabilir.
Eğer bunlar nerede işimize yarayacak diye sorarsanız Unity ile oyun geliştirirken baya işinize yarayabilir.
SetCursorPosıtıon
C#:
Console.SetWindowSize(60, 20);
Console.SetCursorPosition(30, 10);
Console.WriteLine("Hello World");
Console.ReadKey();
Yukarıda SetWindowSize ile konsol pencere boyunu ayarladık ve SetCursorPosition'u kullanarak imlecin pozisyonunu ayarladık.
Ekrana rastgele konumlara 100 tane # karakterini koyan program:
C#:
Random yer = new Random();
Console.SetWindowSize(30, 20);
for (int i = 0; i <100; i++)
{
int satir = yer.Next(1,19);
int sutun = yer.Next(1,29);
Console.SetCursorPosition(sutun,satir);
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("#");
System.Threading.Thread.Sleep(150);
}
Şimdilik konuyu burada bitiriyorum. Zamanla bütün konuları blog siteme ekleyeceğim ve dahasını öğrendikce güncelleyeceğim.Herkese iyi forumlar.
Son düzenleme: