Sobes.tech
Junior — Middle

Каква е разликата между референтните типове данни и типовете стойности в програмирането?

sobes.tech AI

Отговор от AI

В C# типовете данни се делят на стойностни (value types) и референтни (reference types).

Стойностните типове съхраняват данните директно. При присвояване или предаване към метод, самата стойност се копира. Примери: int, double, struct, bool.

Референтните типове съхраняват препратка към област в паметта, където се намират данните. При присвояване се копира препратката, не данните, така че няколко променливи могат да сочат към един и същ обект. Примери: class, string, array.

Пример:

int a = 5;
int b = a; // копира се стойността 5
b = 10;
// a все още е 5

class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // копира се препратката
p2.Name = "Bob";
// p1.Name сега е "Bob"

Основната разлика е в начина на съхранение и копиране на данните: стойностните типове копират стойностите, референтните типове — препратки към обекти.