Junior — Middle
Programlamada referans tipleri ile değer tipleri arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
C# dilinde veri tipleri değer tipleri (value types) ve referans tipleri (reference types) olarak ikiye ayrılır.
Değer tipleri veriyi doğrudan saklar. Bir atama veya metoda geçirilirken, değer kendisi kopyalanır. Örnekler: int, double, struct, bool.
Referans tipleri ise verilerin bulunduğu bellek alanına bir referans tutar. Atama sırasında, referans kopyalanır, veriler değil, bu yüzden birkaç değişken aynı nesneye işaret edebilir. Örnekler: class, string, array.
Örnek:
int a = 5;
int b = a; // 5 değeri kopyalanır
b = 10;
// a hâlâ 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // referans kopyalanır
p2.Name = "Bob";
// p1.Name artık "Bob"
Bu nedenle, temel fark, verilerin nasıl saklandığı ve kopyalandığıdır: değer tipleri değerleri kopyalar, referans tipleri nesnelere referansları kopyalar.