Skip to main content
Yazılım Geliştirme

C# Programlama Dili: Başlangıç Rehberi

Mart 06, 2026 7 dk okuma 19 views Raw
Ayrıca mevcut: en
C# programlama dili kod editöründe açık olan dizüstü bilgisayar
İçindekiler

C# Nedir ve Neden Öğrenmelisiniz?

C# (okunuşu: si şarp), Microsoft tarafından 2000 yılında geliştirilen modern, nesne yönelimli ve tip güvenli bir programlama dilidir. Anders Hejlsberg liderliğinde tasarlanan C#, .NET platformunun temel dili olarak doğmuş ve yıllar içinde dünyanın en popüler programlama dillerinden biri haline gelmiştir.

C# öğrenmeniz için pek çok geçerli neden bulunmaktadır. Her şeyden önce, C# son derece çok yönlü bir dildir. Masaüstü uygulamalarından web servislerine, mobil uygulamalardan oyun geliştirmeye, bulut çözümlerinden yapay zeka projelerine kadar geniş bir yelpazede kullanabilirsiniz. Ayrıca güçlü bir topluluk desteğine ve Microsoft'un sürekli yatırımına sahiptir.

İş piyasasında C# geliştiricilerine olan talep sürekli yüksek seyretmektedir. Kurumsal yazılım dünyasında .NET ekosistemi dominant bir role sahiptir ve bu durum C# bilgisini son derece değerli kılmaktadır.

.NET Ekosistemi ve C# İlişkisi

.NET, Microsoft tarafından geliştirilen açık kaynaklı bir yazılım geliştirme platformudur. C# bu platformun birincil dilidir ve .NET'in sunduğu tüm olanaklardan tam anlamıyla yararlanır. .NET ekosistemini anlamak, C# ile verimli çalışabilmek için kritik öneme sahiptir.

.NET platformunun temel bileşenleri şunlardır:

  • .NET Runtime (CLR): C# kodunuzun derlenip çalıştırıldığı ortamdır. Bellek yönetimi, çöp toplama ve tip güvenliği gibi kritik görevleri üstlenir.
  • Base Class Library (BCL): Dosya işlemleri, ağ iletişimi, veri yapıları gibi temel işlevleri sağlayan kapsamlı bir kütüphane koleksiyonudur.
  • ASP.NET Core: Web uygulamaları ve API'ler geliştirmek için kullanılan güçlü bir çerçevedir.
  • Entity Framework Core: Veritabanı işlemlerini kolaylaştıran bir ORM (Object-Relational Mapping) aracıdır.
  • MAUI: Çapraz platform mobil ve masaüstü uygulamalar geliştirmek için kullanılan modern bir çerçevedir.

Geliştirme Ortamını Hazırlama

C# ile programlamaya başlamak için öncelikle uygun bir geliştirme ortamı kurmanız gerekmektedir. En popüler seçenekler şunlardır:

Visual Studio: Microsoft'un kapsamlı entegre geliştirme ortamıdır. Community sürümü ücretsizdir ve bireysel geliştiriciler ile küçük ekipler için idealdir. IntelliSense kod tamamlama, yerleşik hata ayıklayıcı ve zengin eklenti desteği sunar.

Visual Studio Code: Hafif ve hızlı bir kod editörüdür. C# Dev Kit eklentisi ile güçlü bir C# geliştirme ortamına dönüşür. Çapraz platform desteği sayesinde Windows, macOS ve Linux üzerinde çalışır.

.NET SDK: Hangi editörü seçerseniz seçin, .NET SDK'yı kurmanız zorunludur. Microsoft'un resmi sitesinden en güncel sürümü indirip kurabilirsiniz. Kurulumdan sonra terminal üzerinden dotnet --version komutuyla doğrulama yapabilirsiniz.

İlk C# Programınız

Geliştirme ortamınız hazır olduğuna göre ilk programınızı yazabilirsiniz. Terminal üzerinden yeni bir konsol uygulaması oluşturmak için şu komutu kullanın:

dotnet new console -n MerhabaDunya
cd MerhabaDunya

Bu komut, temel bir C# konsol uygulaması şablonu oluşturacaktır. Program.cs dosyasını açtığınızda şu kodu göreceksiniz:

Console.WriteLine("Hello, World!");

Bu tek satırlık kod, .NET 6 ve sonrası ile gelen üst düzey ifadeler (top-level statements) özelliğini kullanmaktadır. Programı çalıştırmak için terminalde dotnet run komutunu yazmanız yeterlidir.

Temel Veri Tipleri ve Değişkenler

C# güçlü bir tip sistemine sahiptir. Değişkenlerin tiplerinin derleme zamanında belirlenmesi, birçok hatanın erken aşamada yakalanmasını sağlar. İşte en sık kullanılan veri tipleri:

Sayısal tipler: int tam sayılar için, long büyük tam sayılar için, float ve double ondalıklı sayılar için, decimal ise finansal hesaplamalar gibi yüksek hassasiyet gerektiren durumlar için kullanılır.

Metin tipleri: string metin verileri için, char tek bir karakter için kullanılır. C# string interpolation özelliği sayesinde metin içine değişken yerleştirmek son derece kolaydır.

Mantıksal tip: bool tipi yalnızca true veya false değerlerini alabilir ve koşullu ifadelerde yaygın olarak kullanılır.

string ad = "Ahmet";
int yas = 25;
double maas = 15000.50;
bool aktifMi = true;

Console.WriteLine($"Ad: {ad}, Yaş: {yas}, Maaş: {maas:C2}");

C# ayrıca var anahtar kelimesi ile örtülü tipleme imkanı da sunar. Derleyici, atanan değere bakarak değişkenin tipini otomatik olarak belirler.

Kontrol Yapıları ve Döngüler

Programların akışını yönlendirmek için kontrol yapıları vazgeçilmezdir. C# bu konuda zengin seçenekler sunar.

Koşullu ifadeler: if-else yapısı temel karar mekanizmasıdır. Birden fazla koşulu değerlendirmeniz gerektiğinde else if blokları ekleyebilirsiniz. switch ifadesi ise belirli bir değişkenin farklı değerlerine göre dallanma yapmak için idealdir.

int puan = 85;

if (puan >= 90)
    Console.WriteLine("Pekiyi");
else if (puan >= 70)
    Console.WriteLine("İyi");
else if (puan >= 50)
    Console.WriteLine("Geçer");
else
    Console.WriteLine("Kaldı");

Döngüler: Tekrarlayan işlemler için C# dört temel döngü yapısı sunar:

  • for döngüsü: Belirli sayıda tekrar gereken durumlarda kullanılır.
  • foreach döngüsü: Koleksiyonlar üzerinde gezinmek için en temiz ve okunabilir seçenektir.
  • while döngüsü: Koşul doğru olduğu sürece çalışmaya devam eder.
  • do-while döngüsü: En az bir kez çalışması garanti edilen döngüdür.
string[] sehirler = { "İstanbul", "Ankara", "İzmir", "Bursa" };

foreach (string sehir in sehirler)
{
    Console.WriteLine($"Şehir: {sehir}");
}

Metotlar ve Fonksiyonlar

Metotlar, kodunuzu organize etmenin ve tekrar kullanılabilir bloklar oluşturmanın temel yoludur. C#'ta her metot bir sınıf içinde tanımlanır ve erişim belirleyicisi, dönüş tipi, ad ve parametrelerden oluşur.

static double DaireAlaniHesapla(double yaricap)
{
    return Math.PI * yaricap * yaricap;
}

static void Selamla(string isim, string unvan = "Bey")
{
    Console.WriteLine($"Merhaba {isim} {unvan}!");
}

C# metotlarda varsayılan parametre değerleri, isimli argümanlar, params anahtar kelimesi ile değişken sayıda parametre ve out parametreleri gibi gelişmiş özellikler sunar. Bu özellikler kodunuzu daha esnek ve okunabilir hale getirir.

Nesne Yönelimli Programlama (OOP)

C# tam anlamıyla nesne yönelimli bir dildir ve OOP'nin dört temel ilkesini destekler: kapsülleme, kalıtım, çok biçimlilik ve soyutlama.

Sınıflar ve nesneler: Sınıflar, nesnelerin şablonlarıdır. Özellikler (properties) ve metotlar içerirler. Nesneler ise sınıfların somut örnekleridir.

public class Arac
{
    public string Marka { get; set; }
    public string Model { get; set; }
    public int Yil { get; set; }

    public string BilgiGetir()
    {
        return $"{Yil} {Marka} {Model}";
    }
}

var araba = new Arac
{
    Marka = "Toyota",
    Model = "Corolla",
    Yil = 2024
};

Kalıtım: Bir sınıfın başka bir sınıftan özellik ve davranışları miras almasını sağlar. Bu sayede kod tekrarını önler ve hiyerarşik yapılar oluşturabilirsiniz.

Arayüzler: C#'ta çoklu kalıtım desteklenmez, ancak arayüzler (interfaces) aracılığıyla bir sınıf birden fazla sözleşmeyi uygulayabilir. Bu, esnek ve test edilebilir kod yazmanın temel taşlarından biridir.

Koleksiyonlar ve LINQ

C# zengin bir koleksiyon kütüphanesine sahiptir. En yaygın kullanılan koleksiyon tipleri şunlardır:

  • List<T>: Dinamik boyutlu diziler için tercih edilen genel amaçlı koleksiyondur.
  • Dictionary<TKey, TValue>: Anahtar-değer çiftleri halinde veri depolamak için kullanılır.
  • HashSet<T>: Benzersiz elemanlar içeren koleksiyonlar için idealdir.
  • Queue<T> ve Stack<T>: Sırasıyla FIFO ve LIFO veri yapılarıdır.

LINQ (Language Integrated Query), C#'ın en güçlü özelliklerinden biridir. Koleksiyonlar üzerinde SQL benzeri sorgular yazmanızı sağlar ve kodunuzu büyük ölçüde sadeleştirir.

var sayilar = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var ciftSayilar = sayilar
    .Where(s => s % 2 == 0)
    .OrderByDescending(s => s)
    .ToList();

var toplam = sayilar.Sum();
var ortalama = sayilar.Average();

Hata Yönetimi

Güvenilir yazılımlar geliştirmek için hata yönetimi kritik bir beceridir. C#'ta hata yönetimi try-catch-finally blokları ile gerçekleştirilir.

try
{
    int sonuc = int.Parse("abc");
}
catch (FormatException ex)
{
    Console.WriteLine($"Geçersiz format: {ex.Message}");
}
catch (Exception ex)
{
    Console.WriteLine($"Beklenmeyen hata: {ex.Message}");
}
finally
{
    Console.WriteLine("İşlem tamamlandı.");
}

İyi bir uygulama olarak, yalnızca beklediğiniz istisna tiplerini yakalayın, genel Exception sınıfını mümkün olduğunca son çare olarak kullanın ve istisnalar hakkında anlamlı günlük kayıtları tutun.

Asenkron Programlama

Modern uygulamalarda performans ve yanıt verebilirlik büyük önem taşır. C#'ın async ve await anahtar kelimeleri, asenkron programlamayı son derece kolay hale getirir. Özellikle dosya işlemleri, ağ istekleri ve veritabanı sorguları gibi I/O yoğun işlemlerde asenkron programlama büyük fayda sağlar.

async Task<string> VeriGetirAsync(string url)
{
    using var client = new HttpClient();
    string sonuc = await client.GetStringAsync(url);
    return sonuc;
}

Asenkron metotlar Task veya Task<T> döndürür ve await anahtar kelimesi ile beklenir. Bu yaklaşım, uzun süren işlemler sırasında uygulamanızın yanıt vermeye devam etmesini sağlar.

C# ile Kariyer Yolları

C# öğrendikten sonra birçok farklı kariyer yolunu takip edebilirsiniz:

  • Backend geliştirici: ASP.NET Core ile web API'leri ve servisler geliştirin.
  • Full-stack geliştirici: Blazor ile hem frontend hem backend tarafında C# kullanın.
  • Oyun geliştiricisi: Unity oyun motoru ile 2D ve 3D oyunlar oluşturun.
  • Masaüstü uygulama geliştiricisi: WPF veya MAUI ile platform uygulamaları geliştirin.
  • Bulut mühendisi: Azure servisleri ile ölçeklenebilir bulut çözümleri tasarlayın.

Sonraki Adımlar

C# öğrenme yolculuğunuzda ilerlemek için şu adımları takip etmenizi öneriyoruz. Öncelikle temel konuları bol pratik yaparak pekiştirin. Küçük projeler geliştirerek öğrendiklerinizi uygulamaya koyun. Microsoft'un resmi dokümantasyonu olan Microsoft Learn platformunu aktif olarak kullanın. Açık kaynak projelere katkıda bulunarak gerçek dünya deneyimi kazanın. Son olarak, topluluk etkinliklerine katılarak diğer geliştiricilerle etkileşim kurun.

C# sürekli gelişen ve güncellenen bir dildir. Her yeni sürümle birlikte geliştirici deneyimini iyileştiren özellikler eklenmektedir. Bu dinamik yapı, C# öğrenmenin her zaman heyecan verici olmasını sağlar.

Profesyonel yazılım projeleriniz için uzman desteğe mi ihtiyacınız var? Deneyimli ekibimiz C# ve .NET teknolojileriyle kurumsal çözümler geliştirmektedir. Projelerinizi birlikte hayata geçirmek için hemen bizimle iletişime geçin.

Bu yazıyı paylaş