C# Programlama: Adım Adım Başlangıç Rehberi
Bu rehber, C# programlama dilini öğrenmeye başlamak isteyenler için adım adım bir yol haritası sunar. C#'ın temellerini, kullanım alanlarını ve pratik örneklerini içerir.
C# Nedir?
C#, Microsoft tarafından geliştirilen güçlü ve esnek bir programlama dilidir. Adını müzik notasyonundan alır ve keskin ("sharp") özelliğine sahip olduğunu simgeler. 2000 yılında tanıtılan C#, modern programlama pratikleriyle nesne yönelimli programlamayı birleştirir.
C# Nasıl Kullanılır?
- Geliştirme Ortamını Hazırlama: İlk adım, C# kodları yazmak için bir geliştirme ortamı oluşturmaktır. Microsoft Visual Studio, C# programlama için önerilen IDE'dir. İnternetten indirip kurduktan sonra yeni bir C# projesi oluşturabilirsiniz.
- Kod Yazmaya Başlama: Bir C# programı, "Main" adlı bir metotla başlar. Bu metot, programınızın başlangıç noktasıdır. İşte basit bir "Merhaba, Dünya!" örneği:
using System; class Program { static void Main() { Console.WriteLine("Merhaba, Dünya!"); } } - Derleme ve Çalıştırma: Yazdığınız kodları derlemek ve çalıştırmak için derleyiciye ihtiyacınız vardır. Derleme, yazdığınız kodu anlaşılabilir bir biçime çevirir ve ardından çalıştırabilir bir program oluşturur.
C# Kullanım Alanları
C# birçok farklı alanda kullanılır:
- Windows Uygulamaları: C#, masaüstü uygulamalarının geliştirilmesi için tercih edilir.
- Web Uygulamaları: ASP.NET ile birlikte kullanılarak güçlü ve dinamik web uygulamaları geliştirmek mümkündür.
- Oyun Geliştirme: Popüler oyun geliştirme motorlarından Unity, C# dilini oyun geliştirmek için kullanır.
- Veritabanı Uygulamaları: C#, veritabanı işlemlerini yönetmek için kullanılabilir.
- Mobil Uygulamalar: Xamarin gibi araçlarla C# kullanarak Android ve iOS için uygulamalar oluşturabilirsiniz.
C# ile Örnekler
Basit Konsol Çıktısı
Console.WriteLine("Merhaba, Dünya!");
Aritmetik İşlemler
int sayi1 = 10;
int sayi2 = 5;
int toplam = sayi1 + sayi2;
Console.WriteLine("Toplam: " + toplam);
Kullanıcıdan Girdi Alma
Console.Write("Adınızı girin: ");
string isim = Console.ReadLine();
Console.WriteLine("Merhaba, " + isim);
Koşul İfadeleri
int yas = 18;
if (yas >= 18)
{
Console.WriteLine("Ehliyet alabilirsiniz.");
}
else
{
Console.WriteLine("Ehliyet alamazsınız.");
}
Döngüler
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
}
İleri Düzey C# Konuları ve Örnek Kodlar
1. Nesne Yönelimli Programlama (OOP)
Nesne yönelimli programlama, kodunuzu daha modüler ve sürdürülebilir hale getirir. İşte bir sınıf ve miras alma örneği:
class Arac
{
public string Marka { get; set; }
public string Model { get; set; }
}
class Otomobil : Arac
{
public int MotorGucu { get; set; }
}
class Program
{
static void Main()
{
Otomobil otomobil = new Otomobil();
otomobil.Marka = "Toyota";
otomobil.Model = "Corolla";
otomobil.MotorGucu = 150;
Console.WriteLine($"Otomobil: {otomobil.Marka} {otomobil.Model}, Motor Gücü: {otomobil.MotorGucu} HP");
}
}
2. Delegeler ve Olaylar
Delegeler ve olaylar, etkileşimli uygulamalar geliştirmenize yardımcı olur. İşte bir delegasyon ve olay örneği:
class HaberKaynagi
{
public delegate void HaberHandler(string haber);
public event HaberHandler YeniHaber;
public void YeniHaberGonder(string haber)
{
Console.WriteLine($"Yeni haber: {haber}");
YeniHaber?.Invoke(haber);
}
}
class Abone
{
public void HaberAl(string haber)
{
Console.WriteLine($"Haber alındı: {haber}");
}
}
class Program
{
static void Main()
{
HaberKaynagi haberKaynagi = new HaberKaynagi();
Abone abone = new Abone();
haberKaynagi.YeniHaber += abone.HaberAl;
haberKaynagi.YeniHaberGonder("Yeni ürün çıktı!");
}
}
3. LINQ (Language Integrated Query)
LINQ ile veri işlemleri daha kolay ve okunabilir hale gelir. İşte basit bir LINQ sorgusu:
List<int> sayilar = new List<int> { 2, 5, 8, 10, 15, 20 };
var ciftSayilar = from sayi in sayilar where sayi % 2 == 0 select sayi;
foreach (var sayi in ciftSayilar)
{
Console.WriteLine(sayi);
}
4. Asenkron Programlama
Asenkron programlama, uzun süren işlemleri engellemeden çalışmanızı sağlar. İşte asenkron bir metot örneği:
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
await AsenkronMetot();
Console.WriteLine("İşlem tamamlandı.");
}
static async Task AsenkronMetot()
{
await Task.Delay(2000);
Console.WriteLine("Asenkron işlem tamamlandı.");
}
}
5. Örüntü Tanıma ve SOLID Prensipleri
Tasarım örüntüleri ve SOLID prensipleri, kodunuzun yapısını düzenleyerek daha bakımı kolay ve ölçeklenebilir hale getirir. Örnek olarak "Singleton" örüntüsü:
public sealed class Singleton
{
private static Singleton instance = null;
private static readonly object lockObject = new object();
private Singleton() { }
public static Singleton Instance
{
get
{
lock (lockObject)
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
}
6. Veritabanı İşlemleri
ADO.NET veya Entity Framework kullanarak veritabanı işlemleri yapabilirsiniz. İşte Entity Framework ile basit bir sorgu:
using Microsoft.EntityFrameworkCore;
class VeritabaniContext : DbContext
{
public DbSet<Urun> Urunler { get; set; }
}
class Urun
{
public int Id { get; set; }
public string Ad { get; set; }
public decimal Fiyat { get; set; }
}
class Program
{
static void Main()
{
using (var context = new VeritabaniContext())
{
var urunler = context.Urunler.ToList();
foreach (var urun in urunler)
{
Console.WriteLine($"{urun.Id}: {urun.Ad}, {urun.Fiyat} TL");
}
}
}
}
7. Web Geliştirme ve API Entegrasyonu
ASP.NET veya ASP.NET Core ile web uygulamaları ve servisler oluşturabilirsiniz. Ayrıca dışarıdan API'larla etkileşime geçebilirsiniz. İşte basit bir API çağrısı:
using System.Net.Http;
class Program
{
static async Task Main()
{
using (var client = new HttpClient())
{
string apiUrl = "https://jsonplaceholder.typicode.com/posts/1";
HttpResponseMessage response = await client.GetAsync(apiUrl);
if (response.IsSuccessStatusCode)
{
string content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}
}
}
8. GUI Tasarım ve WPF
WPF ile görsel olarak zengin masaüstü uygulamaları tasarlayabilirsiniz. İşte basit bir WPF penceresi:
using System.Windows;
class Program : Application
{
[STAThread]
static void Main()
{
Program app = new Program();
app.Run(new AnaPencere());
}
}
class AnaPencere : Window
{
public AnaPencere()
{
Title = "Merhaba, WPF!";
Width = 300;
Height = 200;
Content = new TextBlock { Text = "Hoş geldiniz!" };
}
}
Öğrenme Yolculuğunuza Devam Edin!
C# programlama dilini anlamak ve ustalaşmak, sürekli bir öğrenme yolculuğudur. Gerçek dünyadaki projelerde deneyim kazanmak ve düzenli pratik yapmak, başarınızı artırır.