❓ Niyə C# default olaraq VALUE istifadə edir?
Qısa cavab:
👉 Təhlükəsizlik və nəzarət üçün
İndi uzun, amma çox aydın izah 👇
1️⃣ Əgər hər şey ref olsaydı nə olardı?
Təsəvvür et belə kod yazmısan:
Hesabla(a);
Amma sən bilmirsən ki metod içində nə baş verir.
Əgər default ref olsaydı:
metod sənin dəyişənini gizlicə dəyişə bilərdi
bug tapmaq cəhənnəmə dönərdi
proqram proqnozlaşdırılmaz olardı
😵💫 Yəni:
“Mən göndərdim, amma niyə dəyər dəyişdi?” sualı hər yerdə çıxardı
2️⃣ VALUE nəyi qoruyur?
VALUE deyir ki:
“Rahat ol. Metod sənin dəyişəninə toxuna bilməz.”
Yəni:
Artir(a);
➡️ a təhlükəsizdir
➡️ dəyişiklik yalnız metodun içində qalır
Bu:
kodu oxunaqlı
davranışı proqnozlaşdırılan
bug-ları azaldan
edir.
3️⃣ Bəs niyə ref var?
Çünki bəzən qəsdən dəyişmək istəyirik.
Məsələn:
swap (yer dəyişmə)
böyük massivlə performans
metoddan birdən çox nəticə qaytarmaq
Ona görə C# deyir:
“Əgər dəyişmək istəyirsənsə, açıq-aşkar de (ref)”
4️⃣ C#-ın fəlsəfəsi (çox vacib!)
Təhlükəli şeyi gizli yox, açıq et
Buna görə:
Artir(ref a);
🔴 Burda sən özün imza atırsan:
“Bəli, bu metod a-nı dəyişə bilər”
5️⃣ Yekun – bunu yadda saxla 🧠
📌 Default = təhlükəsiz (value)
📌 ref = qəsdən risk
📌 Dəyişiklik olursa, koddan görünməlidir