Xotira ichida referens ma'lumot turlari qanday ishlaydi va ular qiymat turlaridan qanday farq qiladi?
sobes.tech AI
AIdan javob
C# da ikkita asosiy ma'lumot turi mavjud: qiymat turlari (value types) va havola turlari (reference types).
-
Qiymat turlari ma'lumotlarni to'g'ridan-to'g'ri ularning e'lon qilingan joyidagi xotirada saqlaydi. Masalan,
int,struct. Belgilashda, qiymat nusxa ko'chiriladi, va har bir o'zgaruvchi o'z nusxasiga ega bo'ladi. -
Havola turlari o'zgaruvchida ma'lumotlar o'zi emas, balki ma'lumotlar joylashgan xotira hududiga havola (ko'rsatkich) saqlaydi. Masalan,
class,string. Belgilashda, faqat havola nusxa ko'chiriladi, ob'ekt emas, shuning uchun bir nechta o'zgaruvchilar bir xil ob'ektga ishora qilishi mumkin.
Misol:
int a = 5;
int b = a; // qiymat nusxasi
b = 10;
// a hali ham 5
class Person { public string Name; }
Person p1 = new Person { Name = "Иван" };
Person p2 = p1; // havola nusxasi
p2.Name = "Пётр";
// p1.Name ham "Пётр", chunki p1 va p2 bir xil ob'ektga ishora qilmoqda
Shu tarzda, havola turlari bir ob'ekt bilan turli o'zgaruvchilar orqali ishlash imkonini beradi, qiymat turlari esa ma'lumotlarning mustaqil nusxalarini saqlaydi.