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ı |