C# Dpluman
C# Dpluman
HER YÖNÜYLE
C# 10
Volkan Aktaş
KODLAB
®
II KODLAB 193
HER YÖNÜYLE C# 10
VOLKAN AKTAŞ
ISBN 978-605-9118-87-3
Yayıncılık Sertifika No: 13206
Editör
İrem Soylu
Grafik Tasarım
Tamer Takmaz
Satış ve Pazarlama
Can Üstünel
Bu kitabın bütün yayın hakları Kodlab Yayın Dağıtım Yazılım ve Eğitim Hizmetleri
San. ve Tic. Ltd. Şti.’ne aittir. Yayınevimizin yazılı izni olmaksızın kısmen veya
tamamen alıntı yapılamaz, kopya çekilemez, çoğaltılamaz ve yayınlanamaz.
KODLAB Yayın Dağıtım Yazılım ve Eğitim Hizmetleri San. ve Tic. Ltd. Şti.
15 Temmuz Mh. 1481. Sk. No : 44/A Bağcılar / İSTANBUL
VOLKAN AKTAŞ
1976 Mersin doğumlu olup aslen Diyarbakır Ergani’lidir. Lise öğrenimini Mersin Atatürk
Teknik Lisesi Bilgisayar bölümünden, üniversite öğrenimini Gazi Üniversitesi Bilgisayar
Öğretmenliği bölümünden mezun olarak tamamlamıştır. Yüksek Lisansını ise Mersin
Üniversitesi Bilgisayar ve Öğretim Teknolojileri fakültesinde tamamlamıştır. 1999-2003
yılları arasında Şanlıurfa Merkez Endüstri Meslek Lisesinde bilgisayar öğretmeni olarak
görev yapmış olup 2003 yılından bu yana da Mersin’de görev yapmaktadır. Hâlen Mersin
Kadri Şaman MTSO Mesleki ve Teknik Anadolu Lisesinde görev yapmaktadır.
Visual Basic .NET, C#, Visual C++, Python, Go dilleri ve Arduino, Raspberry Pi ve ESP
kartları ile aktif olarak uygulamalar geliştirmektedir.
Ayşe AKTAŞ ile evli olup Talha ile Sümeyye adlarında iki çocuğu vardır.
TEŞEKKÜR
Bu kitabın yazım sürecinde öncelikle anneme, kardeşime, bana destek olan ve sabır
gösteren eşime ve çocuklarıma teşekkür ederim.
ÖN SÖZ
Bu kitap yıllardır C# .NET ile geliştirdiğim projelerin, kullandığım uygulamaların ve bu
süreçte edindiğim tecrübelerin birleşiminden oluşmuştur. Elbette bu süreçte gerek
öğrencilerime ders anlatmak üzere hazırladığım ders notları, gerekse çeşitli web
sitelerinde yazdığım makaleler de etkili olmuştur.
.Net yapısının sağladığı güçlü altyapı, birçok projemi C#. NET ile geliştirmemde etkili
olmuştur. .NET altındaki diğer dillerden farklı olarak tamamen .NET için geliştirilen bir dil
olması nedeniyle .NET, altyapısını en iyi olarak kullanabilen dildir diyebiliriz. C, C++ ve
Java dillerinin güçlü yanlarını bünyesinde toplamıştır.
Elbette bir programcının tek bir dile bağımlı olması düşünülemez ve düşünülmemelidir.
Benim görüşüme göre iyi bir programcı birden fazla dil bilmeli ve kullanacağı proje
tipine göre dil seçimi yapmalıdır. Çünkü programlama dillerinin birbirlerine göre daha
güçlü olduğu kullanım alanları ve sahip olduğu bazı nitelikler vardır.
Bu kitapta genel olarak C# .Net temel ve orta seviye konularıyla birlikte C# .NET 10.0
sürümüne ait bir kısım yeni özelliklere yer vermeye çalıştım. Dolayısı ile gerek C# .NET’i
yeni öğrenmeye başlayan, gerekse daha önceden C# .NET ile çalışmış bir okuyucu
kitapta kendisine göre konular bulacaktır.
Kitapta elden geldiği kadar çok örneğe yer vermeye gayret ettim. Hemen her konu
örneklerle desteklenerek anlatıldı. Anlatılan her örnek denenmiş ve çalıştığı görüldükten
sonra kitaba eklenmiştir. Kitapta konu sıralaması programcılık mantığının doğru bir
şekilde gelişimine katkıda bulunacak şekilde yapılmıştır. Temel seviye konularda
konsol uygulamalarına ağırlık verilmiş, bölümler ilerledikçe uygulamalarda Windows
form uygulamalarına yer verilmiştir. Windows form uygulamalarında yalnızca anlatılan
konuya dair kontroller kullanılmış, gereksiz kontrollerin kullanımından kaçınılmıştır.
Ayrıca form üzerindeki kontrollerin tasarımı ve özellikleri gibi bazı ayrıntılar mümkün
oldukça atlanarak kullanıcı gereksiz ayrıntılarla boğulmamıştır.
İÇİNDEKİLER
3 KONSOL EKRANI 87
Konsol Ekranında Değer Yazma ve Okuma 90
Write ve WriteLine Metotları 90
Read ve ReadLine Metotları 92
BackgroundColor ve ForegroundColor Metotları 98
ConsoleKeyInfo Yapısı 100
SetCursorPosition Metodu 105
Konsol Uygulamalarından Çıkış 106
VI HER YÖNÜYLE C# 10
5 OPERATÖRLER 177
Aritmetik Operatörler 178
Aktarma Operatörleri 179
Mantıksal Operatörler 180
& (Ve) Operatörü 180
| (Veya) Operatörü 181
İÇİNDEKİLER VII
7 DÖNGÜLER 213
for Döngüsü 213
foreach Döngüsü 225
while Döngüsü 227
ResXResourceWrıter 587
AddResource Metodu 587
19 METOTLAR 645
Değer Döndürmeyen Metotlar 645
Metot İçerisinde Parametre Kullanımı 647
Değer Döndüren Metotlar 652
Params IEnumerable 656
Tuple Deconstruction 657
Tuple İle Geriye Çoklu Değer Döndürme 661
ref return 663
ref Conditional 664
in Parametreler 666
ref readonly return 667
Kontrollere Metot Bağlamak (Event Handler) 668
Generic Metotlar 669
Metotların Aşırı Yüklenmesi (Overloading) 671
Temsilciler (Delegates) 673
XVI HER YÖNÜYLE C# 10
29 THREADING 1003
Threadler ile Çalışmak 1004
Sleep Metodu 1007
Suspend ve Resume Metodları 1009
Abort Metodu 1010
Join Metodu 1010