İÇİNDEKİLER
İçindekiler
Glossary 1
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
ii
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
iii
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 Operatörler 137
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
iv
8.7 Bitsel (Bitwise) Operatörler . . . . . . . . . . . . . . . . . . . . . . . . . . 154
8.8 Başka Operatörler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
8.9 Operatör Öncelikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
9 Array 157
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 Döngüler 195
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
v
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 Metotlar 227
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 Yapılar (structs) 249
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 Erişimciler 261
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
vi
17 STRING 273
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 Karakterler 297
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 Kalıtım 309
19.1 Kalıtım Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
19.2 Polimorfizm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
20 Arayüzler 317
vii
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 Koleksiyonlar 327
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 delegeler 343
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 Kutulama 353
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 Sıralama 363
24.1 Sıralama ve Arama Kavramları . . . . . . . . . . . . . . . . . . . . . . . . 363
24.2 Ters Sıralama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
viii
24.3 Arama Teknikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
24.3.1 Doğrusal Arama . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
24.3.2 Binary Arama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
25 Indexer 373
25.1 İndeksci Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
25.2 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
25.3 Adaş (aşkın) İndeksci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
26 Enumerator 381
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
ix
28.6 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
28.6.1 ParseMetodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
28.7 Sayı Stilleri Listesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
29 Tarih ve Zaman 419
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 |