Sobes.tech
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.