Sobes.tech
Junior

რა არის C#-ში მიმთითებელი მონაცემთა ტიპები და რა თვისებები აქვთ მათ?

sobes.tech AI

პასუხი AI-სგან

Ռեֆերենցիոն տվյալների տեսակները պահում են հղումներ օբյեկտների վրա heap- ում: Ռեֆերենցիոն տիպի փոփոխականները պարունակում են հիշողության հասցեն, որտեղ գտնվում է ինքնըստինքյան օբյեկտը:

Հատկություններ՝

  • Հղումով փոխանցում՝ Մի ռեֆերենցիոն տիպի փոփոխականի արժեքը մյուս նույն տիպի փոփոխականին վերագրելը հանգեցնում է նրան, որ երկուսը ցույց են տալիս նույն օբյեկտին հիշողության մեջ:
  • Հիշողության կառավարում՝ Ռեֆերենցիոն տիպի օբյեկտները տեղադրվում են կառավարելի heap- ում: Գործող աղբամատը ավտոմատ կերպով ազատում է հիշողությունը, որը զբաղեցրած է օբյեկտներով, որոնց վրա այլ հղումներ չկան:
  • Դեֆոլտ արժեք՝ Ռեֆերենցիոն տիպի համար դեֆոլտ արժեքը null է:
  • ժառանգություն և պոլիմորֆիզմ՝ Ռեֆերենցիոն տիպերը աջակցում են ժառանգությանը, ինչը թույլ է տալիս ստեղծել դասերի հիերարխիաներ և օգտագործել պոլիմորֆիզմ:
  • Համեմատում՝ == օպերատորը ըստ default համեմատում է հղումները, ոչ թե օբյեկտների պարունակությունը:

Օրինակներ՝

  • Դասեր (class)
  • Ինտերֆեյսներ (interface)
  • Դելեգատներ (delegate)
  • Մասիվներ (array)
  • Ստրինգներ (string) (համենայն դեպս, string-ը անփոփոխ հղումային տիպ է)
// Հղումային տիպի օրինակ Class1
public class Class1
{
    public int Value { get; set; }
}

// Class1-ի օրինակ ստեղծում
Class1 obj1 = new Class1 { Value = 10 };

// Հղում տալ
Class1 obj2 = obj1;

// Արժեքի փոփոխություն obj2-ով ազդում է obj1-ի վրա
obj2.Value = 20;

// Այժմ, obj1.Value հավասար է 20-ին
System.Console.WriteLine(obj1.Value);