Unity Eğitim
Dersler
Forum Sınav Merkezi Premium 💎
C# Dersleri

C# ile İlk Konsol Uygulaması: Hello World ve Program.cs

Paylaşan: Unity Eğitim 06 October 2025 9 dakika okuma 81 görüntülenme

C# programlama diline adım atarken, çoğu geliştiricinin ilk deneyimi basit bir konsol uygulaması yazmakla başlar. Bu, dilin temel sözdizimini anlamak ve geliştirme ortamına alışmak için harika bir yoldur. Bu makalede, C# ile ilk 'Hello World' konsol uygulamanızı nasıl oluşturacağınızı, `Program.cs` dosyasının ne anlama geldiğini ve temel C# komutlarını adım adım inceleyeceğiz. Eğer Unity ile oyun geliştirmeye hevesliyseniz, C# temellerini sağlam atmak sizi daha ileriye taşıyacaktır.

C# Konsol Uygulaması Nedir ve Neden Önemlidir?

Bir C# konsol uygulaması, grafiksel kullanıcı arayüzü (GUI) olmayan, tamamen metin tabanlı bir programdır. Komut istemcisi (Windows'ta Command Prompt veya PowerShell, macOS/Linux'ta Terminal) üzerinde çalışır ve kullanıcıyla metin tabanlı girdi/çıktı ile etkileşim kurar. Başlangıç için konsol uygulamaları mükemmeldir çünkü:

  • Basittir: GUI tasarımıyla uğraşmadan doğrudan programlama mantığına odaklanmanızı sağlar.
  • Temeldir: Değişkenler, döngüler, koşullar gibi temel programlama yapılarını öğrenmek için idealdir.
  • Hızlı Geliştirme: Fikirleri hızlıca test etmek ve algoritmaları denemek için kullanılabilir.

Unity'de C# kullanacak olsanız bile, bu temel konsol uygulamaları C# dilinin çalışma prensiplerini anlamanız için sağlam bir zemin hazırlar.

Geliştirme Ortamını Hazırlama

C# kodu yazmak ve derlemek için bir geliştirme ortamına ihtiyacınız var. En yaygın seçenekler şunlardır:

  • Visual Studio (Windows): Microsoft'un güçlü entegre geliştirme ortamı (IDE). Yeni başlayanlar için Community sürümü ücretsizdir.
  • Visual Studio Code (.NET SDK ile) (Windows, macOS, Linux): Hafif ve çok yönlü bir kod düzenleyici. .NET SDK'yı kurarak C# geliştirme yapabilirsiniz.

Bu makalede Visual Studio'yu kullandığınızı varsayarak ilerleyeceğiz, ancak adımlar Visual Studio Code için de benzerdir.

Yeni Bir Konsol Projesi Oluşturma

  1. Visual Studio'yu açın.
  2. 'Yeni bir proje oluştur' (Create a new project) seçeneğine tıklayın.
  3. Şablonlar listesinde 'Konsol Uygulaması' (Console App) veya 'Console Application' (C#) şablonunu arayın ve seçin. (.NET Core veya .NET sürümünü seçtiğinizden emin olun).
  4. 'İleri' (Next) düğmesine tıklayın.
  5. Projenize bir isim verin (örneğin: IlkKonsolUygulamam) ve bir konum seçin.
  6. 'Oluştur' (Create) düğmesine tıklayın.

Visual Studio, projenizi oluşturacak ve otomatik olarak `Program.cs` adında bir dosya açacaktır. Bu dosya, C# konsol uygulaması için başlangıç noktamızdır.

Program.cs Dosyasını Anlamak

Yeni oluşturulan `Program.cs` dosyanızın içeriği, kullandığınız .NET sürümüne bağlı olarak biraz farklılık gösterebilir. Modern .NET sürümlerinde (örneğin .NET 6 ve sonrası) daha sade bir yapı kullanılırken, eski sürümlerde daha fazla 'boilerplate' kod bulunur. Biz modern yaklaşıma odaklanacağız:

Modern .NET ile Program.cs (Top-Level Statements)

// Program.cs
Console.WriteLine("Hello, World!");
Console.ReadKey(); // Konsol penceresinin hemen kapanmasını engeller

Bu kadar basit! Daha önceki .NET sürümlerinde gördüğünüz `namespace`, `class Program` ve `static void Main(string[] args)` gibi yapılar, 'Top-Level Statements' özelliği sayesinde varsayılan olarak gizlenmiştir. Derleyici bu kodları otomatik olarak bir `Main` metodunun içine yerleştirir.

Eski .NET Sürümleri İçin Program.cs (Geleneksel Yapı)

Eğer eski bir .NET sürümü kullanıyorsanız veya daha geleneksel yapıyı görmek isterseniz, `Program.cs` dosyanız aşağıdaki gibi görünecektir:

// Program.cs
using System;

namespace IlkKonsolUygulamam
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
            Console.ReadKey(); // Konsol penceresinin hemen kapanmasını engeller
        }
    }
}

Yapı Taşları Açıklaması:

  • `using System;`: Bu ifade, programımızın `System` ad alanındaki (namespace) sınıfları kullanacağını belirtir. `Console` sınıfı bu ad alanı içinde yer alır. `using` direktifleri, tam nitelikli adları (örn: `System.Console.WriteLine`) yazmak yerine kısa isimleri kullanmamızı sağlar.
  • `namespace IlkKonsolUygulamam`: Ad alanı, kodunuzu organize etmenize yardımcı olan bir kapsayıcıdır. Benzer işlevselliğe sahip sınıfları bir araya getirir ve isim çakışmalarını önler.
  • `class Program`: C#’ta tüm kodlar sınıfların içinde yer alır. `Program` sınıfı, uygulamamızın ana mantığını barındırır.
  • `static void Main(string[] args)`: Bu, her C# konsol uygulamasının kalbidir. Program çalıştığında ilk çağrılan metottur.
    • `static`: Metodun bir nesne örneği oluşturulmadan doğrudan sınıf adı üzerinden çağrılabileceğini belirtir.
    • `void`: Metodun herhangi bir değer döndürmediğini belirtir.
    • `Main`: Bu özel isim, derleyiciye buranın programın başlangıç noktası olduğunu söyler.
    • `string[] args`: Program başlatılırken komut satırından geçilebilecek argümanları (parametreleri) tutan bir string dizisidir.
  • `Console.WriteLine("Hello, World!");`: Bu satır, konsol penceresine "Hello, World!" metnini yazar ve ardından yeni bir satıra geçer. `Console` sınıfı, konsol giriş ve çıkış işlemlerini yöneten metotları içerir. `WriteLine` ise bu metotlardan biridir.
  • `Console.ReadKey();`: Bu satır, kullanıcının bir tuşa basmasını bekler. Bu, özellikle Visual Studio'da programı çalıştırdığınızda konsol penceresinin çıktıyı gösterir göstermez kapanmasını engellemek için kullanışlıdır.

Uygulamayı Çalıştırma

Uygulamanızı çalıştırmak için Visual Studio'da 'Başlat' (Start) düğmesine (genellikle yeşil bir üçgen simgesi) tıklayabilir veya klavyenizden F5 tuşuna basabilirsiniz. Bir konsol penceresi açılacak ve "Hello, World!" yazısını göreceksiniz. Ardından bir tuşa bastığınızda pencere kapanacaktır.

Pratik İpuçları

1. `Console.Write` ve `Console.WriteLine` Farkı

`Console.WriteLine()` metni yazdıktan sonra otomatik olarak yeni bir satıra geçer. Eğer aynı satırda birden fazla çıktı vermek isterseniz, `Console.Write()` metodunu kullanabilirsiniz:

Console.Write("Merhaba ");
Console.Write("dünya!");
// Çıktı: Merhaba dünya!
Console.WriteLine("Merhaba");
Console.WriteLine("dünya!");
// Çıktı:
// Merhaba
// dünya!

2. Kullanıcıdan Girdi Alma (`Console.ReadLine()`)

C# konsol uygulaması sadece çıktı vermekle kalmaz, kullanıcıdan girdi de alabilir. `Console.ReadLine()` metodu, kullanıcının girdiği metni bir string olarak okur:

Console.Write("Adınız nedir? ");
string ad = Console.ReadLine();
Console.WriteLine($"Merhaba, {ad}!");
Console.ReadKey();

Bu örnek, kullanıcının adını sorar ve ardından kişiselleştirilmiş bir "Merhaba" mesajı gösterir.

3. Kodunuzu Hata Ayıklama (Debugging)

Visual Studio, kodunuzdaki hataları bulmanıza yardımcı olacak güçlü bir hata ayıklayıcıya sahiptir. Bir satırın solundaki gri alana tıklayarak bir 'kesme noktası' (breakpoint) ekleyebilirsiniz. Programı başlattığınızda (F5), kod bu kesme noktasına ulaştığında durur. Ardından değişkenlerin değerlerini inceleyebilir ve kodu adım adım çalıştırabilirsiniz (F10 ile sonraki satıra geç).

Yaygın Hatalar ve Çözümleri

1. Noktalı Virgül Eksikliği

C# dilinde, her komut satırının sonunda noktalı virgül (`;`) olmalıdır. Unutmak, en yaygın hatalardan biridir.

Console.WriteLine("Hata var") // Hata! Noktalı virgül eksik

Çözüm: Satırın sonuna noktalı virgül ekleyin: `Console.WriteLine("Hata var");`

2. Büyük/Küçük Harf Duyarlılığı

C#, büyük/küçük harfe duyarlı bir dildir. `Console` ile `console` farklı şeylerdir.

console.WriteLine("Bu çalışmaz!"); // Hata! 'console' yerine 'Console' olmalı

Çözüm: Doğru büyük/küçük harf kullanımına dikkat edin: `Console.WriteLine("Bu çalışır!");`

3. Konsol Penceresinin Hemen Kapanması

Console.ReadKey() veya Console.ReadLine() kullanmadığınızda, program tüm komutları çalıştırır çalıştırmaz konsol penceresi kapanır ve çıktıyı görmeye zamanınız kalmaz.

Console.WriteLine("Bu çıktı hemen kaybolur!");
// Console.ReadKey() eksik

Çözüm: Programın sonunda kullanıcıdan bir girdi bekleyin: `Console.ReadKey();`

4. Ad Alanı (Namespace) Çakışmaları veya Eksiklikleri

Özellikle daha karmaşık projelerde, farklı sınıfların aynı isimde olması veya gerekli `using` direktiflerinin eksik olması hatalara yol açabilir.

// 'Console' bulunamadı hatası alabilirsiniz eğer System ad alanı dahil edilmemişse
WriteLine("Merhaba"); 

Çözüm: Gerekli ad alanlarını `using` direktifleri ile ekleyin: `using System;`

Performans ve Optimizasyon Notları

Bir 'Hello World' C# konsol uygulaması için performans optimizasyonu genellikle birincil endişe değildir. Ancak, daha büyük ve daha karmaşık konsol uygulamaları geliştirirken aşağıdaki noktalara dikkat etmek önemlidir:

  • Girdi/Çıktı (I/O) İşlemleri: Büyük miktarda metin çıktısı veya dosyadan okuma/yazma işlemleri yaparken, `StringBuilder` sınıfını kullanarak string birleştirmelerini optimize edebilir, `StreamReader` ve `StreamWriter` gibi sınıfları kullanarak dosya işlemlerini daha verimli hale getirebilirsiniz.
  • Gereksiz Hesaplamalardan Kaçınma: Özellikle döngüler içinde tekrarlanan ve sonucu değişmeyen hesaplamaları döngü dışına taşıyarak performansı artırabilirsiniz.
  • Bellek Yönetimi: Büyük veri yapılarıyla çalışırken bellek kullanımını göz önünde bulundurun. Gereksiz nesne oluşturmaktan kaçınmak ve `IDisposable` arayüzünü kullanan kaynakları (dosyalar, veritabanı bağlantıları) `using` blokları ile düzgün bir şekilde serbest bırakmak önemlidir.

Sonuç

C# ile ilk 'Hello World' konsol uygulamanızı başarıyla oluşturdunuz! Bu basit adım, C# programlama diline ve .NET ortamına sağlam bir başlangıç yapmanızı sağlar. `Program.cs` dosyasının yapısını, `Main` metodunun önemini ve `Console.WriteLine()` gibi temel komutları anladınız. Bu temelleri kullanarak, daha karmaşık C# konsol uygulamaları geliştirmeye ve Unity ile oyun dünyasına adım atmaya hazırsınız. Unutmayın, pratik yapmak en iyi öğrenme yöntemidir!

🧠 Ders Sonu Değerlendirme Testi

Dersi tamamladıktan sonra bilgilerinizi test edin ve ekstra puanlar kazanın.

🔥 +50 XP Ödül
🔒

Sınava Katılmak İçin Giriş Yapın

Bu ders sonu testini çözebilmek, bilginizi test edip **+50 XP** kazanmak ve **Sınav Şampiyonu** rozetinin kilidini açmak için üye girişi yapmalısınız.

Yorumlar (0)

Yorum yazabilmek ve derslere katkıda bulunabilmek için giriş yapmalısınız.

İlk yorumu siz yapın!