Sobes.tech
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" аст

Тавре ки мебинем, тағйирот дар намудҳои ишораӣ тавассути як тағйирёбанда ба ҳама ишораҳо таъсир мерасонад, дар ҳоле ки дар намудҳои арзишӣ — не.