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" არის
ამგვარად, მითითების ტიპებში ცვლილებები ერთ ცვლადზე გავლენას ახდენს ყველა მითითებაზე, ხოლო მნიშვნელობის ტიპებში — არა.