Sobes.tech
Junior

Referans ve değer tipleri arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Veri depolama ve iletme şekillerindeki farklar:

  • Değer Tipleri (Value Types):

    • Doğrudan tanımlandıkları yerde (yığın veya değer tipi örneği içinde) depolanırlar.
    • Atama veya değerle geçiş sırasında, değerin bir kopyası oluşturulur.
    • Primitif tipler (int, float, bool vb.), yapılar (struct) ve enumlar (enum) içerir.
    • Kapanmış (sealed) olup, kalıtıma izin vermezler.
  • Referans Tipleri (Reference Types):

    • Heap'te depolanır. Değişken, değeri değil, heap'teki adrese referans içerir.
    • Atama veya değerle geçişte, sadece referans kopyalanır, nesne kendisi değil.
    • Sınıflar (class), arayüzler (interface), delegeler (delegate) ve diziler (array) içerir.
    • Kalıtımı destekleyebilir.
    • Çöp toplayıcı, referans olmayan nesnelerin hafıza serbest bırakılmasını yönetir.
// Değer tipi örneği (struct)
struct Point
{
    public int X;
    public int Y;
}

// Referans tipi örneği (class)
class Circle
{
    public int Radius;
}
Özellik Değer Tipleri Referans Tipleri
Depolama Yeri Yığın veya değer tipi örneği içinde Heap
Atama/Geçiş Değerin kopyası Referansın kopyası
Kalıtım Hayır Evet
Bellek Yönetimi Otomatik (yığın) Çöp toplayıcı