Sobes.tech
Junior — Middle

Mi a különbség a referencia típusok és az érték típusok között a programozásban?

sobes.tech MI

Válasz az MI-től

A C#-ban az adattípusokat értéktípusokra (value types) és referencia típusokra (reference types) osztják.

Értéktípusok közvetlenül tárolják az adatokat. Átadás vagy hozzárendelés esetén maga az érték másolódik. Példák: int, double, struct, bool.

Referencia típusok egy memória területre mutató hivatkozást tárolnak, ahol az adatok találhatók. Hozzárendeléskor a hivatkozás másolódik, nem az adatok, így több változó is mutathat ugyanarra az objektumra. Példák: class, string, array.

Példa:

int a = 5;
int b = a; // a 5 érték másolódik
b = 10;
// az a még mindig 5

class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // a hivatkozás másolódik
p2.Name = "Bob";
// p1.Name most "Bob"

Tehát a fő különbség az, hogy az adatok tárolása és másolása hogyan történik: az értéktípusok másolják az értékeket, a referencia típusok pedig a hivatkozásokat az objektumokra.