Sobes.tech
Junior — Middle

C# tilida referens turlari va qiymat turlari qanday farq qilishini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

C# da'yon turlarini qiymat turlari (value types) va referens turlari (reference types) ga bo'linadi.

  • Qiymat turlari ma'lumotlarni to'g'ridan-to'g'ri saqlaydi. Belgilash yoki metodga o'tkazishda qiymat nusxa ko'chiriladi. Misollar: int, double, struct.
  • Referens turlari ma'lumotlar joylashgan xotira hududiga havolani saqlaydi. Belgilashda, faqat havola nusxa ko'chiriladi, o'zi ma'lumotlar emas. Misollar: class, string, massivlar.

Misol:

int a = 5;
int b = a; // b 5 qiymatining nusxasini oladi
b = 10; // a o'zgarmaydi, hali 5

class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 va p1 bir xil ob'ektga murojaat qiladi
p2.Name = "Bob"; // endi p1.Name ham "Bob" bo'ladi

Shu tarzda, referens turlaridagi o'zgarishlar bitta o'zgaruvchi orqali barcha murojaatlarni aks ettiradi, qiymat turlarida esa aks etmaydi.