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.