Чӣ гуна навъҳои маълумоти истинодӣ дар хотира кор мекунанд ва чӣ гуна аз навъҳои арзишӣ фарқ мекунанд?
sobes.tech AI
Ҷавоб аз AI
Дар C# ду намуд асосии маълумот мавҷуд аст: намудҳои арзиш (value types) ва намудҳои ишора (reference types).
-
Намудҳои арзиш маълумотҳоро мустақиман дар хотирае, ки дар он эълон шудаанд, нигоҳ медоранд. Масалан,
int,struct. Ҳангоми таъин кардан, арзиш нусха мегирад ва ҳар як тағирёбанда нусхаи худро дорад. -
Намудҳои ишора дар тағирёбанда на худи маълумот, балки ишора (ҳамин ки нишондиҳанда) ба минтақаи хотира, ки маълумот дар он ҷойгир аст, нигоҳ медоранд. Масалан,
class,string. Ҳангоми таъин кардан, танҳо ишора нусха мегирад, на объект, бинобар ин чанд тағирёбанда метавонад ба як объект ишора кунад.
Масалан:
int a = 5;
int b = a; // нусхаи арзиш
b = 10;
// a ҳоло ҳам 5
class Person { public string Name; }
Person p1 = new Person { Name = "Иван" };
Person p2 = p1; // нусхаи ишора
p2.Name = "Пётр";
// p1.Name ҳам "Пётр" аст, зеро p1 ва p2 ба як объект ишора мекунанд
Ин тариқ, намудҳои ишора имкон медиҳанд, ки бо як объект аз тағирёбандаҳои гуногун кор кунанд, дар ҳоле ки намудҳои арзиш нусхаҳои мустақилро нигоҳ медоранд.