1- C# Write WriteLine Read ReadLine Metotları

MerryGo

Yeni üye
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.

tJoGV2.gif

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ı

tJoGV2.gif
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.

Ekran%2Bg%25C3%25B6r%25C3%25BCnt%25C3%25BCs%25C3%25BC%2B2021-07-28%2B144540.png


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

tJoGV2.gif
Konsol ekranında basılan karakterleri Read() metodu ile okuyabilirsiniz.

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

tJoGV2.gif
SetCursorPosıtıon; konsoldaki imlecin belirli bir konumda durmasını sağlar bu sayede konsol ekranında istediğimiz konumda yazı yazdırabiliriz.

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);

}

Ekran%2Bg%25C3%25B6r%25C3%25BCnt%25C3%25BCs%25C3%25BC%2B2021-07-28%2B144540.png


Şimdilik konuyu burada bitiriyorum. Zamanla bütün konuları blog siteme ekleyeceğim ve dahasını öğrendikce güncelleyeceğim.Herkese iyi forumlar.

Önceki Konu Sonraki Konu
Blog sitem Merry Go
 
Son düzenleme:

'The Wolf

Kıdemli Üye
22 Nis 2021
4,043
2,565
Tanrı dağı
Merhaba bu aralar C# öğreniyorum ve öğrenirken de yazmayı seviyorum. Yazdığım yazıları seri halinde paylaşmayı düşünüyorum. İyi okumalar.

tJoGV2.gif

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ı

tJoGV2.gif
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.

Ekran%2Bg%25C3%25B6r%25C3%25BCnt%25C3%25BCs%25C3%25BC%2B2021-07-28%2B144540.png


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

tJoGV2.gif
Konsol ekranında basılan karakterleri Read() metodu ile okuyabilirsiniz.

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

tJoGV2.gif
SetCursorPosıtıon; konsoldaki imlecin belirli bir konumda durmasını sağlar bu sayede konsol ekranında istediğimiz konumda yazı yazdırabiliriz.

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);

}

Ekran%2Bg%25C3%25B6r%25C3%25BCnt%25C3%25BCs%25C3%25BC%2B2021-07-28%2B144540.png


Şimdilik konuyu burada bitiriyorum. Zamanla bütün konuları blog siteme ekleyeceğim ve dahasını öğrendikce güncelleyeceğim.Herkese iyi forumlar.

Önceki Konu Sonraki Konu
Blog sitem Merry Go
Ellerinize Sağlık Güzel Konu Olmuş.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.