Junior — Middle
Yadda yaddaşda istinad növü məlumatları işləyir və onlar dəyər növlərindən necə fərqlənir?
sobes.tech Süni İntellekt
AI-dan cavab
C# dilində iki əsas məlumat tipi mövcuddur: dəyər tipləri (value types) və istinad tipləri (reference types).
-
Dəyər tipləri məlumatları birbaşa yaddaşda, elan olunduğu yerdə saxlayır. Məsələn,
int,struct. Təyin etdikdə, dəyər kopyalanır və hər dəyişən öz nüsxəsini saxlayır. -
İstinad tipləri dəyişəndə, məlumatlar özləri yox, məlumatların yerləşdiyi yaddaş sahəsinə istinad (göstərici) saxlayır. Məsələn,
class,string. Təyin etdikdə, yalnız istinad kopyalanır, obyekt yox, buna görə də bir neçə dəyişən eyni obyektə istinad edə bilər.
Misal:
int a = 5;
int b = a; // dəyərin nüsxəsi
b = 10;
// a hələ də 5
class Person { public string Name; }
Person p1 = new Person { Name = "Иван" };
Person p2 = p1; // istinadın nüsxəsi
p2.Name = "Пётр";
// p1.Name də "Пётр" olur, çünki p1 və p2 eyni obyektə istinad edir
Beləliklə, istinad tipləri müxtəlif dəyişənlərdən eyni obyektlə işləməyə imkan verir, dəyər tipləri isə məlumatların müstəqil nüsxələrini saxlayır.