Junior — Middle
Dasturlashda referens turlari va qiymat turlari qanday farq qiladi?
sobes.tech AI
AIdan javob
C# tilida ma'lumot turlari 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, o'zi qiymat nusxalanadi. Misollar: int, double, struct, bool.
Referens turlari ma'lumotlar joylashgan xotira hududiga havolani saqlaydi. Belgilashda, havola nusxalanadi, o'zi ma'lumotlar emas, shuning uchun bir nechta o'zgaruvchilar bir xil ob'ektga ishora qilishi mumkin. Misollar: class, string, array.
Misol:
int a = 5;
int b = a; // 5 qiymati nusxalanadi
b = 10;
// a hali ham 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // havola nusxalanadi
p2.Name = "Bob";
// p1.Name endi "Bob"
Shunday qilib, asosiy farq — ma'lumotlarni saqlash va nusxalash usuli: qiymat turlari qiymatlarni nusxalaydi, referens turlari ob'ektlarga havolalarni nusxalaydi.