Console.Write() yazıyı ekrana basar ve imleci aynı satırda bırakır. Console.WriteLine() ise yazının sonuna satır sonu ekler, imleç bir alt satıra iner. C# konsol uygulamalarının ilk konusu olan bu iki metodun arasındaki tek fark budur. Aşağıdaki örnekleri ve ekran çıktılarını inceleyerek farkı daha net görebilirsiniz.
Bu yazıyı 2016’da yazmıştım. Ekim 2026’da örnekleri .NET 10 ile yeniden çalıştırdım; ekran çıktıları bu çalıştırmadan alındı. Kaybolan proje dosyasını da yeniden hazırladım, yazının sonundan indirebilirsiniz.
Console.Write() Nasıl Kullanılır?
Write metodu kendisine verilen değeri ekrana yazar ve imleci yazının hemen sonunda bırakır. Sonraki Write çağrısı da aynı satırdan devam eder. Bu yüzden bir satırı parça parça oluşturmak istediğinizde Write kullanırsınız. Örneğin “Adınızı girin: ” gibi bir soru yazıp kullanıcının cevabını aynı satırda almak için en uygun metot budur.
static void Main(string[] args)
{
Console.Write("www.");
Console.Write("sahinsezgin");
Console.Write(".com");
Console.ReadLine();
}
www.sahinsezgin.com
Üç ayrı çağrı yaptık ama çıktı tek satırda birleşti, imleç de “.com” yazısının hemen sağında bekliyor. Write metoduna string dışında sayı, karakter ya da bool gibi her türden değer verebilirsiniz. Değer kendiliğinden metne çevrilir. Değişkenlerin nasıl tanımlandığını C# veri tipleri ve değişkenler yazısında anlattım.
Console.WriteLine() Nasıl Kullanılır?
WriteLine metodu da değeri ekrana yazar, ardından satır sonu ekler. Böylece imleç bir alt satırın başına geçer ve sonraki çıktı yeni satırdan başlar. Konsol uygulamalarında en sık kullanılan metot budur, çünkü her bilgi kendi satırında durur ve okunması kolaylaşır.
static void Main(string[] args)
{
Console.WriteLine("Birinci satır");
Console.WriteLine("İkinci satır");
string ad = "Şahin";
int yil = 2016;
Console.WriteLine($"Merhaba {ad}, bu yazı {yil} yılında yayımlandı.");
Console.WriteLine("{0} + {1} = {2}", 2, 3, 2 + 3);
Console.ReadLine();
}
Birinci satır İkinci satır Merhaba Şahin, bu yazı 2016 yılında yayımlandı. 2 + 3 = 5
Son iki satırda değişkenleri metnin içine yerleştirdik. Başında $ olan yazım dize enterpolasyonudur: süslü parantez içindeki değişken olduğu gibi metne girer. {0}, {1} biçimi ise eski kodlarda sık görülür ve değerleri sırasıyla yerleştirir. Parametresiz Console.WriteLine(); hiçbir şey yazmaz, yalnızca boş bir satır bırakır.
Write ile WriteLine Arasındaki Fark Nedir?
İki metot aynı değerleri kabul eder; fark yalnızca yazdıktan sonra imlecin nerede durduğudur. WriteLine aslında Write’ın sonuna satır sonu karakteri eklenmiş hâlidir. Bu karakter işletim sistemine göre değişir: Windows’ta \r\n, Linux ve macOS’ta \n kullanılır. Kodunuzda "\n" yazmak yerine Environment.NewLine ya da doğrudan WriteLine kullanırsanız program her sistemde doğru çalışır.

| Console.Write() | Console.WriteLine() | |
|---|---|---|
| Satır sonu | Eklemez | Ekler |
| İmleç | Yazının hemen sonunda kalır | Alt satırın başına geçer |
| Parametresiz çağrı | Yok | Boş satır bırakır |
| Ne zaman? | Soru sorup cevabı aynı satırda almak, satırı parça parça kurmak | Her bilgiyi ayrı satırda göstermek |
Türkçe karakterler eski Windows konsolunda “?” olarak görünüyorsa programın başına Console.OutputEncoding = System.Text.Encoding.UTF8; satırını ekleyin. Metodların bütün aşırı yüklemelerini Microsoft’un Console.WriteLine belgesinde bulabilirsiniz.
Sıkça Sorulan Sorular
- Örneklerin sonundaki Console.ReadLine() ne işe yarıyor?
Program çıktıyı yazar yazmaz kapanırsa pencere bir anda kaybolur. ReadLine, Enter tuşuna basılana kadar programı bekletir ve çıktıyı okumanızı sağlar. Kullanıcıdan veri almayı Read, ReadLine ve ReadKey yazısında anlattım. - .NET 6 ve sonrasında static void Main yazmak zorunda mıyım?
Hayır. C# 9 ile gelen üst düzey deyimler sayesindeConsole.WriteLine("Merhaba");tek satırı tek başına çalışan bir programdır; .NET 6’dan beri yeni konsol projeleri zaten bu biçimle açılıyor. Main yöntemi yine geçerlidir; yukarıdaki örnekler iki yazımla da aynı çıktıyı verir. - Yazıyı renkli yazdırabilir miyim?
Evet. Write ya da WriteLine çağrısından önceConsole.ForegroundColordeğerini değiştirmeniz yeterli. Ayrıntılar yazı ve arka plan renkleri yazısında.
Proje dosyaları: Örnek proje .NET 10 ile hazırlandı ve dotnet run komutuyla çalışır. .NET 8 kullanıyorsanız proje dosyasındaki net10.0 değerini net8.0 yapmanız yeterli.


Yorum yaz