Ders 31: C#’ta Değer Tipleri ve Referans Tipleri: Bellek Yönetiminin Temellerini Öğrenin

Ahmet Aslan
By -
0


Giriş: Bellekte Ne, Nasıl Saklanıyor?

C# dilinde veri türlerini anlamak sadece doğru kod yazmak için değil, bellek yönetimini verimli yapmak için de hayati önem taşır. "Değer" ve "referans" tipleri arasındaki farkı bilmek, özellikle performans ve davranış farklarının kritik olduğu uygulamalarda doğru kararlar almanızı sağlar.

Bu yazıda değer tipleri ile referans tipleri arasındaki farkları, nasıl çalıştıklarını ve hangi durumlarda hangisini tercih etmeniz gerektiğini sade ve örnekli şekilde anlatıyoruz.




1. Değer Tipleri Nedir?

Değer tipleri, verinin kendisini bellekte saklayan değişken türleridir. Atandıklarında, orijinal değerin bir kopyası oluşturulur.

Yaygın Değer Tipleri:

  • int, double, char, bool, float, decimal, struct, enum

Örnek:

int x = 10;
int y = x;
y = 20;

Console.WriteLine(x); // Çıktı: 10

x ve y birbirinden bağımsızdır. y değişse bile x etkilenmez.


2. Referans Tipleri Nedir?

Referans tipleri, verinin kendisini değil, verinin bulunduğu adresi (referansı) saklar. Bu tipler, bellekteki aynı nesneye işaret ettiklerinden dolayı birinde yapılan değişiklik diğerini de etkiler.

Yaygın Referans Tipleri:

  • string, array, class, object, interface, delegate

Örnek:

int[] dizi1 = { 1, 2, 3 };
int[] dizi2 = dizi1;
dizi2[0] = 99;

Console.WriteLine(dizi1[0]); // Çıktı: 99

dizi1 ve dizi2 aynı adresi işaret ettiği için değişiklik her ikisini etkiler.


3. Temel Farklar Tablosu

Özellik Değer Tipi Referans Tipi
Saklanan veri Değerin kendisi Bellek adresi
Atama sonrası ilişki Bağımsız Ortak
Bellek kullanımı Stack (yığın) Heap (yığın dışı)
Performans Genellikle daha hızlı Nesne karmaşıklığına göre değişir

4. Ne Zaman Hangi Tipi Kullanmalıyız?

✅ Basit veri işlemlerinde — Değer tipi
✅ Karmaşık veri yapıları, nesne modellemelerinde — Referans tipi

Eğer bir değişkenin her kopyasının ayrı ayrı saklanmasını istiyorsanız, değer tipi tercih etmelisiniz. Ancak, aynı veri üzerinde farklı yerlerden işlem yapmak istiyorsanız, referans tipi daha uygundur.


5. Dizi Üzerinden Davranışı Anlamak

int[] array1 = { 1, 2, 3 };
int[] array2 = array1;

array2[0] = 100;

Console.WriteLine(array1[0]); // 100

Çünkü diziler C#’ta referans tipidir. array1 ve array2 aynı nesneyi işaret eder.


Sonuç: Tipi Bil, Belleği Yönet!

Değer ve referans tipleri, veri saklama ve davranış farkları açısından oldukça önemlidir. Kodunuzu daha performanslı ve hatasız yazmak istiyorsanız, bu iki kavramı net bir şekilde anlamalısınız.

🎥 Videolu anlatım ve örnek uygulama için:
👉 C# Ders 31: Değer Tipleri ve Referans Tipleri



Tags:

Yorum Gönder

0Yorumlar

Yorum Gönder (0)