Hiç Bilmeyenler İçin C# ile Programlamaya Giriş Örnek 314 Uygulma ile Prof. Dr. Timur Karaçay, Aybar Karaçay  - Kitap
Hiç Bilmeyenler İçin

C# ile Programlamaya Giriş

Örnek 314 Uygulma ile

2. Baskı, 
Şubat 2016
Kitabın Detayları
Dili:
Türkçe
Ebat:
18x24
Sayfa:
442
Barkod:
9789750236211
Kapak Türü:
Karton Kapaklı
Fiyatı:
455,00
Temin süresi 2-3 gündür.
Kitabın Açıklaması
Gözden geçirilmiş 2. baskısını yapan kitap, C# dili ile programlamaya girişi anlatmaktadır.
29 bölüm ve 454 sayfadan oluşan kitap uygulamaya yönelik 314 örnek program içermektedir. Örnek programların her birisi okura yeni bir şey öğretmek amacıyla yazılmıştır. Kitap, sisteminize Visual Studio'yu nasıl yükleyeceğinizden başlayarak, konuları akıcı bir üslup ve pedagojik yöntemlerle anlatmaktadır. Ayrıca kitapta yer alan örnek uygulama kodlarını www.seckin.com.tr'den indirebilirsiniz.
Sürekli çalışıldığında üç haftadan daha kısa zamanda biten konular, okul ortamında bir sömestrede işlenebilecek biçimde tasarlanmıştır.
Kitabın Konu Başlıkları
.
Programlamanın Kısa Evrimi
.
Program Yazmaya Giriş
.
Visual Studio Ortamı
.
Veri Tipleri ve Değişkenler
.
Program Akışının Yönlendirilmesi
.
Döngüler
.
Sınıflar ve Nesneler
.
Kurucular
.
Statik ve Dinamik Öğeler
.
Kalıtım
.
Operatörler
.
Metotlar
.
Array
.
String
.
Arayüzler
Kitabın İçindekileri
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 
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.2 Alıştırmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 
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