1 Programlamanın Kısa Evrimi 1 
 
1.1 Programlamanın Gelişim Adımları . . . . . . . . . . . . . . . . . . . . . . 1 
 
1.2 Üst düzeyli Diller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 
 
1.3 Nesneye Yönelme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 
 
1.4 Sanal Makineler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
 
1.5 Büyük Hayaller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 
 
1.6 .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 
 
1.7 .NET Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 
 
1.8 Karakter Kodlama Sistemleri . . . . . . . . . . . . . . . . . . . . . . . . . 12 
 
1.9 Metin düzenleyici (editör): . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 
 
2 C# ile Program Geliştirme 15 
 
2.1 Programlamanın Temelleri . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 
 
2.2 C# Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 
 
2.3 Programın Evreleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 
 
2.4 Kaynak Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 
 
2.5 Kaynak Programın Biçemi . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 
 
2.6 Aduzayı (namespace) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 
 
2.6.1 Sınıflar (class) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 
 
2.6.2 Bloklar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 
 
2.7 Programa Açıklama Ekleme . . . . . . . . . . . . . . . . . . . . . . . . . . 27 
 
2.8 Girdi–çıktı İşlemleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 
 
2.9 System aduzayı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 
 
2.10 Konsol G/Ç Akım–yolları . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 
 
2.11 Değişkenler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 
 
2.12 Girdi/Çıktı Metotları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 
 
2.12.1 Parametre ve yerel değişken . . . . . . . . . . . . . . . . . . . . . . 31 
 
2.13 C# Programlarını Derleme . . . . . . . . . . . . . . . . . . . . . . . . . . 32 
 
3 Program Yazmaya Giriş 35 
 
3.1 IDE Kullanmak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 
 
3.2 Veri Tipleri, Değişkenler ve Metotlar . . . . . . . . . . . . . . . . . . . . . 35 
 
3.3 Değişken Bildirimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 
 
3.4 Atama Deyimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 
 
3.5 Parametre ve Değişken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 
 
3.6 Metot Kavramı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 
 
3.7 Yer Tutucu Operatörü: { } . . . . . . . . . . . . . . . . . . . . . . . . . 47 
 
3.7.1 Değişken Kullanımına Örnekler . . . . . . . . . . . . . . . . . . . . 49 
 
3.8 Kapsanma Alannı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 
 
3.9 Dizim (array) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 
 
3.9.1 For Döngüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 
 
3.10 Bilgisayarda Bellek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 
 
3.11 Çöp Toplayıcı (Garbage Collector) . . . . . . . . . . . . . . . . . . . . . . 57 
 
3.12 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 
 
4 Visual Studio Ortamı 61 
 
4.1 Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 
 
4.2 .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 
 
5 Sınıflar ve Nesneler 75 
 
5.1 Sınıf Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 
 
5.1.1 Sınıf Bildirimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 
 
5.2 Sınıf ve Nesne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 
 
5.3 new Operatörü ile Nesne Yaratmak . . . . . . . . . . . . . . . . . . . . . . 79 
 
5.4 Atama operatörü (=) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 
 
5.5 Nesnenin Öğelerine Erişim . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 
 
5.6 Kapsülleme (encapsulation) . . . . . . . . . . . . . . . . . . . . . . . . . . 85 
 
5.6.1 Uygulama sınıfındaki Main() metodu . . . . . . . . . . . . . . . . 85 
 
5.7 Adaş Operatör (aşkın, overloaded operator) . . . . . . . . . . . . . . . . . 86 
 
5.8 Yer Tutucu Operatör . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 
 
5.9 Genkurucu (default constructor) . . . . . . . . . . . . . . . . . . . . . . . 89 
 
5.10 this anahtarı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 
 
6 Kurucular ve Yokediciler 99 
 
6.1 Kurucu Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 
 
6.1.1 new operatörü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 
 
6.2 Static ve Dinamik Öğelere Erişim . . . . . . . . . . . . . . . . . . . . . . . 104 
 
6.3 Kurucular (Constructors) . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 
 
6.4 Kurucu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 
 
6.5 Parametreli Kurucular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 
 
6.6 Adaş (Aşkın) Kurucular . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 
 
6.6.1 Statik Kurucular . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 
 
6.7 Yokediciler (Destructors) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 
 
6.8 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 
 
7 Veri Tipleri ve Değişkenler 121 
 
7.1 C# Dilinde Veri Tipi nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . 121 
 
7.2 Değişken Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 
 
7.3 Kapsanma Bölgesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 
 
7.4 Değer Tipleri– Referans Tipleri . . . . . . . . . . . . . . . . . . . . . . . . 124 
 
7.4.1 Kesirli Sayı Tipleri . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 
 
7.4.2 Decimal Veri Tipi . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 
 
7.5 Veri Tipi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 
 
7.6 String Veri Tipi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 
 
7.7 Boolean Veri Tipi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 
 
7.8 Veri Tipi Dönüşümleri (Döküm–Casting) . . . . . . . . . . . . . . . . . . 132 
 
7.8.1 İstemsiz (implicit) Dönüşüm . . . . . . . . . . . . . . . . . . . . . 132 
 
7.8.2 İstemli(explicit) Dönüşüm . . . . . . . . . . . . . . . . . . . . . . . 132 
 
7.9 Örnekler: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 
 
8.1 Aritmetik Operatörleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 
 
8.2 ++ ve – – Operatörleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 
 
8.2.1 Önel (Prefix) ve Sonal (Postfix) Takılar . . . . . . . . . . . . . . . 143 
 
8.3 Atama Operatörleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 
 
8.4 İlişkisel Operatörler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 
 
8.5 Mantıksal (Logic) Operatörler . . . . . . . . . . . . . . . . . . . . . . . . . 151 
 
8.5.1 VE Operatörü (&&) . . . . . . . . . . . . . . . . . . . . . . . . . . 151 
 
8.6 VEYA Operatörü (¦¦) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 
 
8.7 Bitsel (Bitwise) Operatörler . . . . . . . . . . . . . . . . . . . . . . . . . . 154 
 
8.8 Başka Operatörler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 
 
8.9 Operatör Öncelikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 
 
9.1 Array Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 
 
9.1.1 Array Yaratma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 
 
9.1.2 [ ] Operatörü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 
 
9.1.3 Array’in Bileşenleri . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 
 
9.2 Array Yaratma) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 
 
9.3 Seçkili (random) Erişim . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 
 
9.4 Array Türleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 
 
9.4.1 Bir Boyutlu Array . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 
 
9.4.2 Çok Boyutlu Array . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 
 
9.5 Array Arrayi (çentikli array) . . . . . . . . . . . . . . . . . . . . . . . . . 172 
 
9.6 Array Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 
 
9.7 Özet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 
 
9.8 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 
 
10 Program Akışının Yönlendirilmesi 179 
 
10.1 Blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 
 
10.2 Yönlendiriciler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 
 
10.2.1 if deyimleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 
 
10.3 if–else ve else–if yönlendirmeleri . . . . . . . . . . . . . . . . . . . . . . . . 183 
 
10.4 switch–case denetim yapısı . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 
 
11.1 Döngüler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 
 
11.2 for Döngüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 
 
11.3 break ve continue deyimleri . . . . . . . . . . . . . . . . . . . . . . . . . . 198 
 
11.3.1 break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 
 
11.3.2 continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 
 
11.4 while döngüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 
 
11.5 do–while döngüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 
 
11.6 foreach Döngüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 
 
12 Statik ve Dinamik Öğeler 209 
 
12.1 Statik ve Dinamik Öğeler . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 
 
12.2 Neden Nesne Yönelimli Programlama? . . . . . . . . . . . . . . . . . . . . 210 
 
13 Erişim Belirteçleri 219 
 
13.1 Erişim Belirteci Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 
 
13.2 Erişim Belirteçleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 
 
13.3 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 
 
14.1 Metot Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 
 
14.2 Static Öğe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 
 
14.3 Metot Kavramı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 
 
14.4 Parametreler ve yerel değişkenler . . . . . . . . . . . . . . . . . . . . . . . 229 
 
14.4.1 Main() metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 
 
14.5 Nesne yaratma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 
 
14.6 Hazır metotlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 
 
14.6.1 System.Math sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 
 
14.7 Özyineli (Recursive) Metotlar . . . . . . . . . . . . . . . . . . . . . . . . . 238 
 
14.8 Kullanıcının Tanımladığı Metotlar . . . . . . . . . . . . . . . . . . . . . . 241 
 
14.9 Uygulamalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 
 
14.10Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 
 
15.1 Yapı Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 
 
15.2 Yapı Bildirimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 
 
15.3 New Operatörü ile Yapı Nesnesi Yaratma . . . . . . . . . . . . . . . . . . 250 
 
15.4 Sınıf İçinde Yapı Bildirimi . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 
 
15.5 Yapı Nesnesi Yaratma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 
 
15.6 İç içe Yapılar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 
 
15.7 Yapılar İçinde Metotlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 
 
15.8 Yapının static Değişkenleri . . . . . . . . . . . . . . . . . . . . . . . . . . 256 
 
15.9 Yapılar ve Kurucular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 
 
15.10Struct ve Kalıtım . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 
 
16.1 Gerekseme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 
 
16.2 set/get Metotları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 
 
16.3 Erişimci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 
 
16.4 value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 
 
16.5 Yalnız–okur Erişimci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 
 
16.6 Yalnız–yazar Erişimci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 
 
16.7 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 
 
17.1 String Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 
 
17.2 String Sınıfının Öznitelikleri . . . . . . . . . . . . . . . . . . . . . . . . . . 274 
 
17.3 String Sınıfının Metotları . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 
 
17.4 String Bildirimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 
 
17.5 Metot Örnekleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 
 
17.6 Stringleri Birleştirme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 
 
17.7 Stringleri Karşılaştırma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 
 
17.8 Compare() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 
 
17.9 Equals() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 
 
17.10Copy() metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 
 
17.11Insert() metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 
 
17.12() metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 
 
17.13Remove() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 
 
17.14ToUpper() ve ToLower() Metotları . . . . . . . . . . . . . . . . . . . . . . 284 
 
17.15Split() ve Join() Metotları . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 
 
17.16IndexOf() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 
 
17.17IndexOfAny() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 
 
17.18LastIndexOf() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 
 
17.19PadLeft() ve PadRight() metotları . . . . . . . . . . . . . . . . . . . . . . 290 
 
17.20Trim(), TrimStart(), ve TrimEnd() metotları . . . . . . . . . . . . . . . . 290 
 
17.21Substring() metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 
 
17.22Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 
 
18.1 Yapısı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 
 
18.2 Bilgisayarlar Alfabe Bilmez . . . . . . . . . . . . . . . . . . . . . . . . . . 298 
 
18.3 Unicode Sistemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 
 
18.4 Türkçe Alfabenin Unicode Kodları . . . . . . . . . . . . . . . . . . . . . . 300 
 
18.5 Yapısı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 
 
18.6 Öznitelikleri, Veri Alanları . . . . . . . . . . . . . . . . . . . . . . . . . . 302 
 
18.7 Metotlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 
 
18.8 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 
 
19.1 Kalıtım Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 
 
19.2 Polimorfizm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 
 
20.1 Arayüz Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 
 
20.2 C# dilinde arayüz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 
 
20.3 Arayüzden Arayüz Türetme . . . . . . . . . . . . . . . . . . . . . . . . . . 325 
 
20.4 Kullanıcı Arayüzü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 
 
21.1 Veri Yapıları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 
 
21.1.1 Veri Yapıları Üzerinde İşlemler . . . . . . . . . . . . . . . . . . . . 328 
 
21.1.2 Veri Yapısı Oluşturma . . . . . . . . . . . . . . . . . . . . . . . . . 329 
 
21.2 Koleksiyon Sınıfları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 
 
21.3 ArrayList Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 
 
21.3.1 ArrayList sınıfının Başlıca Metotları . . . . . . . . . . . . . . . . . 330 
 
21.4 StringCollection Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 
 
21.5 StringDictionary Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 
 
21.6 Stack Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 
 
21.7 Queue Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 
 
21.8 BitArray Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 
 
21.9 Hashtable Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 
 
21.10SortedList Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 
 
21.11Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 
 
22.1 Aracısız Metot Çağırma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 
 
22.2 Delege Bildirimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 
 
22.3 Delege İle static Metot Çağırma . . . . . . . . . . . . . . . . . . . . . . . . 345 
 
22.4 Delege İle Dinamik Metot Çağırma . . . . . . . . . . . . . . . . . . . . . . 347 
 
22.5 Delege İle Parametreli Metot Çağırma . . . . . . . . . . . . . . . . . . . . 347 
 
22.6 Alıştırma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 
 
23.1 Kutulama Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 
 
23.2 Değer Tipleri (Value Types) . . . . . . . . . . . . . . . . . . . . . . . . . . 354 
 
23.3 Referans Tipleri (Reference Types) . . . . . . . . . . . . . . . . . . . . . . 355 
 
23.4 Özet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 
 
23.5 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 
 
24.1 Sıralama ve Arama Kavramları . . . . . . . . . . . . . . . . . . . . . . . . 363 
 
24.2 Ters Sıralama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 
 
24.3 Arama Teknikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 
 
24.3.1 Doğrusal Arama . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 
 
24.3.2 Binary Arama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 
 
25.2 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 
 
26.1 Numaratör Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 
 
27 Çıktıyı Biçemli Yazdırma 385 
 
27.1 Neden Biçemleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 
 
27.2 Sayıların Biçemlenmesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 
 
27.2.1 Write() ve WriteLine() İle Biçemleme . . . . . . . . . . . . . . . . 387 
 
27.3 Sağa/sola Yanaşık Yazdırma . . . . . . . . . . . . . . . . . . . . . . . . . . 388 
 
27.4 { } Yer Tutucu ile Biçemleme . . . . . . . . . . . . . . . . . . . . . . . . 389 
 
27.5 Standart Sayısal Biçem Belirtgenleri . . . . . . . . . . . . . . . . . . . . . 390 
 
27.5.1 Sayısal Biçem Belirtgenleri . . . . . . . . . . . . . . . . . . . . . . 391 
 
27.6 Simgesel Biçemler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 
 
27.7 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 
 
27.8 Üstel Notasyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 
 
27.9 ToString() metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 
 
27.10NumberFormatInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 
 
27.11Sorular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 
 
28 String’den Sayıya Dönüşüm 405 
 
28.1 Convert sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 
 
28.2 Parse() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 
 
28.2.1 Parse Metotları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 
 
28.3 Stringe Dönüşen Sayıların Ters Dönüşümü . . . . . . . . . . . . . . . . . . 409 
 
28.4 CultureInfo sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 
 
28.4.1 Hata iletisi: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 
 
28.5 Kültürler ve Bölgeler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 
 
28.5.1 Namespace System.Globalization . . . . . . . . . . . . . . . . . . . 413 
 
28.5.2 Class CultureInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 
 
28.5.3 CultureAndRegionInfoBuilder Sınıfı . . . . . . . . . . . . . . . . . 414 
 
28.5.4 Thread Sınıfı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 
 
28.6 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 
 
28.6.1 ParseMetodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 
 
28.7 Sayı Stilleri Listesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 
 
29.1 DateTime Yapısı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 
 
29.2 DateTime Yapısının Erişimcileri . . . . . . . . . . . . . . . . . . . . . . . . 420 
 
29.3 DateTime Yapısının Metotları . . . . . . . . . . . . . . . . . . . . . . . . . 420 
 
29.4 DateTime Yapısının Operatörleri . . . . . . . . . . . . . . . . . . . . . . . 421 
 
29.5 İlgili Arayüzler (Interfaces) . . . . . . . . . . . . . . . . . . . . . . . . . . 421 
 
29.5.1 ToString() Metodu ile Tarih Yazdırma . . . . . . . . . . . . . . . . 421 
 
29.6 Yöresellik (locale) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 
 
29.7 String.Format() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428