Junior — Middle
C# dilinde referans tipleri ile değer tipleri arasındaki farkları açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
C#'ta veri türleri değer türleri (value types) ve referans türleri (reference types) olarak ikiye ayrılır.
- Değer türleri veriyi doğrudan depolar. Atama veya metoda geçirme sırasında değer kopyalanır. Örnekler:
int,double,struct. - Referans türleri ise verilerin bulunduğu bellek alanına bir referans tutar. Atama sırasında sadece referans kopyalanır, veriler değil. Örnekler:
class,string, diziler.
Örnek:
int a = 5;
int b = a; // b, 5 değerinin bir kopyasını alır
b = 10; // a değişmez, hala 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 ve p1 aynı nesneye referans eder
p2.Name = "Bob"; // şimdi p1.Name da "Bob" olur
Böylece, referans türlerindeki değişiklikler bir değişken aracılığıyla tüm referanslara yansırken, değer türlerinde yansımaz.