Sobes.tech
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" არის

ამგვარად, მითითების ტიპებში ცვლილებები ერთ ცვლადზე გავლენას ახდენს ყველა მითითებაზე, ხოლო მნიშვნელობის ტიპებში — არა.