Ինչպես են աշխատում հղման տվյալների տիպերը հիշողության մեջ և ինչպես են նրանք տարբերվում արժեքային տիպերից:
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 հղում են նույն օբյեկտին
Այսպիսով, հղման տեսակները թույլ են տալիս աշխատել նույն օբյեկտի հետ տարբեր փոփոխականներից, մինչդեռ արժեքային տեսակները պահում են տվյալների անկախ պատճենները: