Junior — Middle
Meg tudná magyarázni, miben különböznek a referencia típusok a érték típusoktól a C# nyelvben?
sobes.tech MI
Válasz az MI-től
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 az érték másolódik. Példák:
int,double,struct. - Referencia típusok egy memória területre mutató hivatkozást tárolnak, ahol az adatok találhatók. Átadáskor csak a hivatkozás másolódik, nem az adatok. Példák:
class,string, tömbök.
Példa:
int a = 5;
int b = a; // b egy másolatot kap az értékről, ami 5
b = 10; // az a változatlan marad, 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 és p1 ugyanarra a objektumra mutat
p2.Name = "Bob"; // most p1.Name is "Bob"
Így a referencia típusok változtatásai egy változón keresztül minden referencián megjelennek, míg az értéktípusoknál nem.