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