C# Temelleri¶
Genel Bakış¶
Bu bölümde, C# programlama dilinin temel kavramlarını, veri tiplerini, operatörleri ve kontrol yapılarını inceleyeceğiz. Bu konular, C# ile geliştirme yaparken sıkça karşılaşacağınız temel yapı taşlarıdır.
İçindekiler¶
- Temel Veri Tipleri
- Value Types
- Reference Types
- Nullable Types
-
Tip Dönüşümleri
- If-Else
- Switch-Case
- Döngüler (for, while, do-while)
-
Break ve Continue
- Sınıflar ve Nesneler
- Kalıtım
- Polimorfizm
- Kapsülleme
-
Soyutlama
- List
- Dictionary
- Array
-
LINQ
- Delegate Tanımlama
- Event Tanımlama
- Lambda Expressions
- Event Handling
Öğrenme Hedefleri¶
Bu bölümü tamamladığınızda: - C#'ın temel veri tiplerini ve değişken kavramını anlayacaksınız - Operatörleri ve kontrol yapılarını etkin şekilde kullanabileceksiniz - Nesne yönelimli programlama prensiplerini uygulayabileceksiniz - Metotları ve parametreleri doğru şekilde kullanabileceksiniz - Koleksiyonları ve LINQ sorgularını yazabileceksiniz
Ön Gereksinimler¶
Bu bölümü takip etmek için: - Temel programlama bilgisi - Visual Studio veya VS Code kurulumu - .NET SDK kurulumu
Best Practices¶
- Kod Organizasyonu
- Anlamlı değişken isimleri kullanın
- Kodunuzu mantıksal bölümlere ayırın
- Yorum satırları ekleyin
-
Kod tekrarından kaçının
-
Performans
- Uygun veri tiplerini seçin
- Gereksiz dönüşümlerden kaçının
- Koleksiyonları doğru kullanın
-
Memory leak'lerden kaçının
-
Güvenlik
- Input validasyonu yapın
- Exception handling kullanın
- Güvenli tip dönüşümleri yapın
- Null kontrollerini unutmayın
Örnek Proje Yapısı¶
CSharpBasics/
├── DataTypes/
│ ├── PrimitiveTypes.cs
│ ├── ReferenceTypes.cs
│ └── ValueTypes.cs
├── Operators/
│ ├── Arithmetic.cs
│ ├── Comparison.cs
│ └── Logical.cs
├── OOP/
│ ├── Classes.cs
│ ├── Inheritance.cs
│ └── Polymorphism.cs
└── Collections/
├── Lists.cs
├── Dictionary.cs
└── LINQ.cs
Sık Sorulan Sorular¶
- Value Type ve Reference Type arasındaki fark nedir?
- Value Type'lar stack'te, Reference Type'lar heap'te saklanır
- Value Type'lar değer kopyalama, Reference Type'lar referans kopyalama yapar
-
Value Type'lar null olamaz (nullable olmadıkça)
-
Boxing ve Unboxing nedir?
- Boxing: Value Type'ı Reference Type'a dönüştürme
- Unboxing: Reference Type'ı Value Type'a dönüştürme
-
Performans maliyeti yüksektir
-
LINQ ne işe yarar?
- Veri sorgulama ve manipülasyonu için kullanılır
- SQL benzeri sorgu yazımı sağlar
- Koleksiyonlar üzerinde işlem yapmayı kolaylaştırır