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);