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" է
Այսպիսով, հղման տեսակների փոփոխությունները մեկ փոփոխականի միջոցով արտացոլվում են բոլոր հղումներում, իսկ արժեքային տեսակների — ոչ։