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ımC# 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şturma5. 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ı
- Masaüstü Uygulamaları → Windows Forms, WPF, UWP
- Web Geliştirme → ASP.NET Core, Blazor
- Mobil Uygulamalar → Xamarin, MAUI
- Oyun Geliştirme → Unity Game Engine
- Bulut ve Mikroservisler → Azure, AWS, Kubernetes
- Veri Bilimi ve Yapay Zeka → ML.NET
C# Geliştirme Ortamları
C# projeleri geliştirmek için aşağıdaki araçlar kullanılabilir:
- Visual Studio (Windows/macOS) → Microsoft’un en güçlü IDE’si.
- Visual Studio Code (Windows/Linux/macOS) → Hafif ve genişletilebilir.
- Rider (JetBrains) → Alternatif ve güçlü bir IDE.
- .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:
- .NET Runtime (Çalışma Zamanı) → C# kodunun çalışmasını sağlayan motor.
- .NET SDK → Uygulama geliştirmek için gereken araçlar.
- ASP.NET Core → Web uygulamaları geliştirmek için.
- Entity Framework Core → Veritabanı işlemleri için ORM aracı.
- 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.