Auzef C# Programlama 2025-2026 Vize Soruları
https://lolonolo.com/2026/06/05/c-programlama-2025-2026-vize-sorulari/
https://lolonolo.com
Show More Show Less View Video Transcript
0:00
Herkese merhaba. Bu rehberimize hemen
0:02
dalalım. Bugün kurumsal yazılım
0:03
dünyasının adeta omurgası olan C#ARP
0:06
programlama dilini masaya yatırıyoruz.
0:08
Ama bakın bu sıradan bir özet değil.
0:10
Bugün verinin o muazzam yaşam döngüsüne
0:12
iniyoruz. Bellekte nasıl doğuyor,
0:14
şekilden şekle nasıl giriyor ve o sıkı
0:16
kurallar zinciri içinde nasıl hayatta
0:18
kalıyor hepsini tek tek göreceğiz.
0:20
Biliyorsunuz C#arp kuralların hiç
0:22
tavizsiz uygulandığı strongly typed yani
0:25
güçlü tipli bir dil. İlk başta bu
0:27
kurallar biraz boğucu gelebilir
0:28
biliyorum ama aslında kodunuzu ilerideki
0:31
devasa hatalardan koruyan en sağlam
0:33
kalkanınız tam da budur. Bugün inşa
0:35
edeceğiniz yapının mimarisi şu şekilde.
0:37
1. Değişkenler ve veri tipleri. 2. Tip
0:40
esnekliği ve dönüşümler 3. Null tipler
0:43
ve stringler 4. Operatörler ve işlem
0:45
önceliği. Ve 5. Kapsam ve koşullu
0:48
ifadeler. Temel bellek tahsisinden en
0:50
karmaşık mantıksal sınırlara doğru
0:52
kusursuz bir kule inşa edeceğiz. Birinci
0:54
bölüm, değişkenler ve veri tipleri. Her
0:57
şeyin başladığı o en temel yere
0:59
iniyoruz. Değişkenler en basit haliyle
1:02
bellekte verilerimizi saklamak için
1:04
ayırdığımız isimlendirilmiş
1:06
kutucuklardır. Ama asıl olay şu. GP'ın o
1:09
katı kuralları tam da burada devreye
1:11
giriyor. Herhangi bir veriyi alıp
1:13
kodunuzda şöyle bir oynatmaya başlamadan
1:15
önce onun bellekteki yerini ve tam
1:18
olarak ne tür bir veri tutacağını açık
1:20
net bir şekilde tanımlamak zorundasınız.
1:23
Yani ben bu veriyi ne yapacağımı sonra
1:25
düşünürüm diyemezsiniz. Tipini baştan
1:27
bildirmediğiniz veriye bu sistemde yer
1:29
yok. Düşünün ki elinizde farklı
1:32
ebatlarda saklama kapları var. Sadece 0'
1:35
la 255 arası minik bir sayı tutacaksanız
1:37
o devasa kaplara ihtiyacınız yok. Bayt
1:40
tam size göre. Ama rakamlar büyüdükçe
1:43
-32.000 ile + 32.000 aralığı için shorta
1:46
geçersiniz. İşler milyarlara vardığında
1:49
int, çok daha akıl almaz astronomik
1:51
rakamlara ulaştığınızda ise long
1:53
kullanırsınız. Bir de bunların eksi
1:55
değer almayan sadece pozitif tarafa
1:57
odaklanan Ushort gibi işaretsiz
1:59
versiyonları var. Mesele şu: Belleği
2:02
yormamak için doğru veriye doğru kabı
2:04
seçmelisiniz. İkinci bölüm: Tip
2:06
esnekliği ve dönüşümler. O katı
2:09
kuralları GARP nasıl esnetiyor? Hadi ona
2:11
bakalım. Şimdi yazılımcılar arasında
2:14
dolanan çok popüler bir efsane var. Çoğu
2:16
kişi var kelimesinin her an her türlü
2:18
veriyi içine alabileceğini sanır. Yok
2:20
öyle bir şey. Aslında var ve dnamik gece
2:23
ile gündüz kadar farklıdır. Var ile bir
2:25
değişken oluşturduğunuzda içine
2:27
koyduğunuz ilk veriye bakılır. Derleme
2:29
anında o tip mühürlenir. Bir daha
2:31
değiştiremezsiniz. Oysa dynamic bambaşka
2:34
bir canavar. Tip kontrolünü kod
2:36
çalışırken yani çalışma zamanında yapar.
2:39
Ona önce bir sayı, üç satır sonra bir
2:41
metin atayabilirsiniz. Hiç itiraz etmez.
2:44
Peki işin en tepesine çıkarsak karşımıza
2:48
object çıkıyor. GP evreninde object
2:51
kelimenin tam anlamıyla her şeyin
2:52
atasıdır. Aklınıza gelebilecek her türlü
2:55
veriyi içine atabilirsiniz. Üstelik var
2:58
gibi bana hemen şimdi bir değer ver diye
3:00
tutturmaz. Tanımlayıp sonradan içini
3:02
doldurabilirsiniz. Esneklik arıyorsanız
3:05
nihai durak burasıdır. Veriyi bir
3:07
kalıptan diğerine geçirirken neler
3:09
oluyor peki? Bu gerçekten hayati bir
3:11
konu. Küçük bir kabı büyük bir kaba
3:14
boşaltırsanız buna örtük yani implicit
3:16
dönüşüm deriz. Hiçbir veri dökülmez.
3:19
C#ARP bunu arka planda sizin için
3:21
sessizce halleder. Ama devasa bir veriyi
3:24
küçük bir kaba zorla sığdırmaya
3:25
çalışırsanız işte buna aşikar yani
3:28
eksplicit dönüşüm denir ve manuel
3:30
yapmanız gerekir. Ve inanın bana o veri
3:33
taşar. Hele bir de eksi değer alabilen
3:35
bir tipi sadece artı değer alan bir tipe
3:38
zorlarsanız sistemden öyle saçma sapan
3:40
sonuçlar alırsınız ki hatayı bulana
3:42
kadar saç baş yolarsınız. Bu yüzden
3:45
zoraki dönüşümlere her zaman çok dikkat
3:47
ediyoruz. Peki her şeyin yerli yerinde
3:50
olduğu bu katı dünyada ya güçlü tipli
3:52
bir değişkenin kelimenin tam anlamıyla
3:55
hiçbir şey tutması gerekirse 3üncü bölüm
3:58
nal tipler ve stringler. O bahsettiğimiz
4:01
hiçbir şey ile nasıl başa çıkıyoruz
4:03
görelim. Normalde C#arp'ta sayı gibi
4:06
değer tiplerinin içi boş yani null
4:08
kalamaz. Ama tipin yanına minik bir soru
4:11
işareti koyarsanız bingo artık o
4:13
değişken nul olabilir. Peki kodumuzun
4:16
ortasında bir null patlaması yaşayıp
4:17
programı çökertmemek için ne yapacağız?
4:19
İşte burada çift soru işareti ile
4:21
gösterilen null birleştirme operatörü
4:23
sahneye çıkıyor. Eğer değişken boşsa
4:25
programı çökertmek yerine tamam sorun
4:27
yok. O zaman şu varsayılan değeri kullan
4:29
diyerek durumu harika bir şekilde
4:30
kurtarıyor. Metinlere yani string
4:33
dünyasına hızlıca bir göz atalım. Kural
4:35
1. Metinler daima çift tırnakla yazılır.
4:37
Tek tırnak mı? O sadece tek bir harf
4:40
içindir. Karıştırmıyoruz. Ama asıl şni
4:43
biçimlendirmede başlıyor. Hani o
4:45
karmaşık dosya yollarında ters slash
4:47
karakterleriyle boğuşuruz. Ya başına bir
4:49
et koyup verbit string yaptığınızda veya
4:52
ü çift tırnakla row string açtığınızda
4:54
bu dert tamamen biter. Ne yazarsanız onu
4:56
alırsınız. Dolar işareti ile yaptığımız
4:59
string interpolasyon ise değişkenleri
5:01
metnin ta içine süslü parantezlerle
5:03
yerleştirmenin kesinlikle en havalı ve
5:05
temiz yoludur. Ekrana çıktı verirken de
5:07
iki basit seçeneğimiz var. Eğer conso
5:10
derseniz yazıyı yazar ve inleç aynı
5:12
satırda dikilip bekler. Ama conso right
5:15
line derseniz yazıyı ekrana basar ve
5:17
zarifçe bir alt satıra geçer. Ayrıca
5:19
çıktıları düzenlerken o eski usul 0 ve
5:22
1inci indeks mantığını kullanıyorsanız
5:24
sıralamanın çıktığınızın kaderini
5:26
doğrudan belirlediğini asla unutmayın.
5:28
4. bölüm. Operatörler ve işlem önceliği.
5:32
Veriyi aldık dönüştürdük. Peki onunla
5:34
matematiği nasıl konuşturacağız? Ve işte
5:36
bu yazılımın o ince detaylarından birini
5:39
harika bir şekilde özetliyor. + x ile x
5:42
+ aynı şey mi? Kesinlikle hayır.
5:45
Operatörün nerede durduğu her şeyi ama
5:47
her şeyi değiştirir. Örnek olarak yani +
5:50
x yazdığınızda sistem durur. Önce sayıyı
5:53
artırır. Sonra o yeni taze değeri
5:55
kullanır. Ama x + yazdığınızda sistem
5:57
der ki ben önce x'in şu anki halini bir
5:59
kullanayım. Satır bitince artırırım. Bu
6:02
minicik sıralama farkı devasa mantık
6:04
hatalarına sebep olabilir. İşverimliliğe
6:07
geldiğinde kısa devre dediğimiz can
6:09
kurtaran yapı sahneye çıkıyor. Tek
6:12
ampersant veya tek dikey çizgi
6:14
kullandığınızda sistem tam değerlendirme
6:17
yapar. Yani amele gibi iki tarafı da
6:19
sonuna kadar okur. Ama çift ampersant v
6:22
veya çift çizgi veya kullandığınızda
6:25
işler hızlanır. İlk şarta bakar. Eğer
6:27
ilk şarttan sonuç zaten belliyse ikinci
6:30
koda dönüp bakma zahmetine bile girmez.
6:32
Bu kısa devre değerlendirmesi hem
6:34
kodunuzu hızlandırır hem de o girmek
6:37
üzere olduğunuz sertifika sınavlarında
6:39
hayatınızı kurtarır. Bir de şu meşhur
6:41
şapka işareti yani XOR operatörümüz var.
6:45
Xor adeta kusursuz bir fark dedektörü
6:48
gibidir. İki veriye bakar. Eğer ikisi de
6:51
tıpa tıp aynıysa yanlış der geçer. Ama
6:54
eğer birbirlerinden farklılarsa işte o
6:56
zaman doğru sonucunu fırlatır. Durumları
6:59
birbirinden ayırt etmek için inanılmaz
7:01
pratik bir araç. 5. ve son bölüm. Kapsam
7:04
ve koşullu ifadeler. Verilerimizin
7:07
etrafına o mantıksal sınırları çizme
7:09
vakti geldi. Kapsam namı diğer scope
7:13
süslü parantezlerin yarattığı o görünmez
7:15
odalar. Burada kural şudur. Dışarıdaki
7:17
odaya herkes erişebilir. Siz içerideki
7:20
bir odadan dışarıdaki bir değişkene
7:22
uzanıp onu değiştirdiğinizde onun bir
7:24
kopyasıyla oynamıyorsunuz. Bizzat asıl
7:26
değişkeni kalıcı olarak
7:28
değiştiriyorsunuz. Değişkeninizin nerede
7:30
doğup nerede nefesinin kesildiğini
7:32
bilmek kodunuzun sınırlarını bilmektir.
7:34
Sınırlar demişken bir de asla esnemeyen
7:37
o duvarlardan yani konst yapısından
7:39
bahsedelim. Sabitler affetmez. Derleme
7:42
anında değeri bilinmelidir.
7:44
Oluşturduğunuz saniye değerini atamak
7:46
zorundasınızdır. Sonra değiştiririm. Yok
7:48
başka bir değişkenin değerini buna
7:50
atayım. Yok. Cons demek verinin etrafına
7:53
örülmüş beton arme bir kale demektir.
7:55
Peki tüm bu kuralları nasıl yönetiyoruz?
7:57
Tabii ki if else zincirleriyle. Sistem
7:59
bu zinciri yukarıdan aşağıya doğru okur.
8:02
İlk doğruyu yakaladığı anda o bloğa
8:03
dalar ve gerisini tamamen çöpe atar. Ama
8:06
dikkat, az önce konuştuğumuz o a + gibi
8:09
operatörleri bu zincirin koşullarına
8:11
koyarsanız sistem okurken yan etkiler
8:13
devreye girer ve istemeden bir
8:14
değişkenin değerini değiştirebilirsiniz.
8:16
Gözünüzü dört açmanız gereken yer tam da
8:18
burasıdır. Tabii sayfalarca if else
8:21
blogları yazmak istemiyorsanız elimizde
8:23
çok şık bir kestirme var. Üçlü operatör.
8:26
Soru işareti ve iki nokta üst üste.
8:28
Koşulu yaz. Doğruysa bunu yap. Yanlışsa
8:31
şunu yap. Bitti. Tek satırda inanılmaz
8:34
okunaklı, tertemiz bir mantık harikası.
8:37
Bugün konuştuğumuz bu detaylar, kapsam
8:39
sınırları, tip dönüşümleri, kısa devre
8:41
değerlendirmeleri. Bakın bunlar sadece
8:44
test geçmek veya mülakat atlatmak için
8:46
ezberlenen şeyler değil. Gerçek dünyada
8:49
çökmeyen, tıkır tıkır çalışan o devasa
8:52
kurumsal uygulamaları yazan
8:53
profesyonellerle amatörleri birbirinden
8:55
ayıran o kalın çizgi tam olarak bu
8:58
temellere duyulan hakimiyettir. Öyleyse
9:00
incelememizi bitirirken size şu soruyu
9:03
sormak istiyorum. Bugün üzerinden
9:05
geçtiğimiz bu güçlü yapı taşlarını kendi
9:07
projelerinizde cesurca kullanmaya hazır
9:10
mısınız? Sizin C#ARP temelleriniz
9:12
yarının o devasa kurumsal uygulamasını
9:15
omuzlarında taşıyabilecek kadar sağlam
9:17
mı? Bunun cevabını kod yazarken siz
9:20
vereceksiniz. Bir sonraki rehberimizde
9:22
görüşmek üzere.
9:25
Özelliği
#Jobs & Education

