Junior — Middle
Bellek içinde referans veri tipleri nasıl çalışır ve bunlar değer tiplerinden nasıl farklıdır?
sobes.tech yapay zeka
AI'dan gelen yanıt
C# dilinde iki temel veri tipi vardır: değer tipleri (value types) ve referans tipleri (reference types).
-
Değer tipleri veriyi doğrudan, tanımlandıkları bellek alanında saklar. Örneğin,
int,struct. Atama yapıldığında, değer kopyalanır ve her değişken kendi kopyasına sahip olur. -
Referans tipleri ise, değişkende kendisi veriyi değil, verinin bulunduğu bellek alanına işaret eden bir referansı (gösterici) saklar. Örneğin,
class,string. Atama sırasında, sadece referans kopyalanır, nesne değil, bu yüzden birkaç değişken aynı nesneye işaret edebilir.
Örnek:
int a = 5;
int b = a; // değerin kopyası
b = 10;
// a hâlâ 5
class Person { public string Name; }
Person p1 = new Person { Name = "Иван" };
Person p2 = p1; // referansın kopyası
p2.Name = "Пётр";
// p1.Name de "Пётр" olur, çünkü p1 ve p2 aynı nesneye işaret eder
Bu şekilde, referans tipleri farklı değişkenler aracılığıyla aynı nesne üzerinde çalışmaya izin verirken, değer tipleri bağımsız veri kopyaları saklar.