C# Nedir? Temel Özellikleri

C# (C-Sharp), Microsoft tarafından geliştirilen, modern, nesne yönelimli (OOP) ve tip güvenli bir programlama dilidir. .NET platformu için geliştirilmiş olan C#, genel amaçlı bir dildir ve masaüstü, web, mobil ve oyun geliştirme gibi birçok alanda kullanılır.

C#’ın Tarihçesi ve Gelişimi

  • 2000 yılında Microsoft tarafından .NET Framework ile birlikte tanıtıldı.
  • Anders Hejlsberg tarafından geliştirildi.
  • ECMA-334 ve ISO/IEC 23270 standartlarıyla uluslararası kabul gördü.
  • Günümüzde .NET 8 gibi modern sürümlerle açık kaynak (open-source) olarak geliştirilmeye devam ediyor.

C#’ın Temel Özellikleri

1. Nesne Yönelimli Programlama (OOP) Desteği

C# tamamen nesne yönelimli (OOP) bir dildir. Encapsulation (kapsülleme), Inheritance (kalıtım), Polymorphism (çok biçimlilik) gibi prensipleri destekler.

class Araba
{
    public string Marka { get; set; }
    public int Model { get; set; }

    public void BilgiGoster()
    {
        Console.WriteLine($"Marka: {Marka}, Model: {Model}");
    }
}
C#

2. Güçlü Tip Kontrolü (Type Safety)

C# tip güvenli (type-safe) bir dildir. Tür dönüşümlerini (casting) zorunlu kılar, böylece çalışma zamanı hatalarını (runtime errors) en aza indirir.

int sayi = 10;
// string metin = sayi;  
// HATA: Farklı türler arasında doğrudan atama yapılamaz.
string metin = sayi.ToString(); // Doğru kullanım
C#

3. Bellek Yönetimi ve Çöp Toplayıcı (Garbage Collector)

C#’ta manuel bellek yönetimi yapmaya gerek yoktur. Garbage Collector (GC), kullanılmayan nesneleri otomatik olarak temizler.

using System;

class Program
{
    static void Main()
    {
        var nesne = new Araba { Marka = "Toyota", Model = 2023 };
        // GC bu nesneyi kullanılmadığında otomatik temizler.
    }
}
C#

4. Platform Bağımsızlık ve .NET Desteği

C# .NET Core ve .NET 5+ ile birlikte platform bağımsız (cross-platform) hale gelmiştir. Windows, Linux, MacOS gibi farklı işletim sistemlerinde çalışabilir.

dotnet new console -n OrnekUygulama
cd OrnekUygulama
dotnet run
.NET 8 ile platform bağımsız uygulama oluşturma

5. Asenkron Programlama (Async/Await)

C# asenkron (asynchronous) programlamayı destekler. async/await kullanarak CPU’yu bloke etmeden işlemler gerçekleştirilir.

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        await UzunSurenIslem();
        Console.WriteLine("İşlem tamamlandı!");
    }

    static async Task UzunSurenIslem()
    {
        await Task.Delay(3000); // 3 saniye bekletme
        Console.WriteLine("Uzun süren işlem tamamlandı.");
    }
}
C#

6. Güvenlik ve Hata Yönetimi

C# güçlü bir exception handling (hata yönetimi) mekanizmasına sahiptir.

try
{
    int bolum = 10 / 0; // Hata oluşur
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Hata: " + ex.Message);
}
finally
{
    Console.WriteLine("İşlem tamamlandı.");
}
C#

7. Gelişmiş Koleksiyonlar ve LINQ Desteği

C# birçok koleksiyon (list, dictionary, queue, stack) türü ve LINQ (Language Integrated Query) desteği sunar.

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        List<int> sayilar = new List<int> { 10, 20, 30, 40, 50 };
        var filtreli = sayilar.Where(s => s > 20).ToList();

        foreach (var s in filtreli)
            Console.WriteLine(s);
    }
}
C#

8. Modern Özellikler ve Sürekli Gelişim

C# sürekli olarak yeni özellikler kazanıyor:

  • C# 8.0 – Nullable Reference Types, Asynchronous Streams
  • C# 9.0 – Record Types, Init-only Properties
  • C# 10.0 – Global Using, File-scoped Namespaces
  • C# 11.0 – Raw String Literals, Required Properties
  • C# 12.0 – Collection Expressions, Inline Arrays
public record Araba(string Marka, int Model);
C#

C#’ın Kullanım Alanları

  1. Masaüstü Uygulamaları → Windows Forms, WPF, UWP
  2. Web Geliştirme → ASP.NET Core, Blazor
  3. Mobil Uygulamalar → Xamarin, MAUI
  4. Oyun Geliştirme → Unity Game Engine
  5. Bulut ve Mikroservisler → Azure, AWS, Kubernetes
  6. Veri Bilimi ve Yapay Zeka → ML.NET

C# Geliştirme Ortamları

C# projeleri geliştirmek için aşağıdaki araçlar kullanılabilir:

  1. Visual Studio (Windows/macOS) → Microsoft’un en güçlü IDE’si.
  2. Visual Studio Code (Windows/Linux/macOS) → Hafif ve genişletilebilir.
  3. Rider (JetBrains) → Alternatif ve güçlü bir IDE.
  4. .NET CLI (Komut Satırı Arayüzü) → Terminalden geliştirme yapmaya olanak tanır.

C# ve .NET Ekosistemi

C# genellikle .NET ekosistemi içinde kullanılır. .NET, C#’ın çalıştığı bir platformdur ve aşağıdaki bileşenlerden oluşur:

  1. .NET Runtime (Çalışma Zamanı) → C# kodunun çalışmasını sağlayan motor.
  2. .NET SDK → Uygulama geliştirmek için gereken araçlar.
  3. ASP.NET Core → Web uygulamaları geliştirmek için.
  4. Entity Framework Core → Veritabanı işlemleri için ORM aracı.
  5. Blazor → Web uygulamalarında C# kullanmayı sağlayan teknoloji.

C# güçlü, güvenli ve geniş kullanım alanına sahip bir dildir. .NET ekosistemiyle birlikte modern, performanslı ve çapraz platform destekli yazılımlar geliştirmeyi mümkün kılar. OOP, LINQ, async/await, hata yönetimi ve güçlü koleksiyon yapıları ile profesyonel yazılım geliştirmede en çok tercih edilen dillerden biridir.