Junior — Middle
V čom sa líšia referenčné typy údajov od hodnotových typov v programovaní?
sobes.tech AI
Odpoveď od AI
V jazyku C# sa datové typy delia na hodnotové typy (value types) a referenčné typy (reference types).
Hodnotové typy ukladajú údaje priamo. Pri priraďovaní alebo odovzdaní do metódy sa kopíruje samotná hodnota. Príklady: int, double, struct, bool.
Referenčné typy ukladajú odkaz na oblasť pamäti, kde sa nachádzajú údaje. Pri priraďovaní sa kopíruje odkaz, nie údaje, takže niekoľko premenných môže ukazovať na ten istý objekt. Príklady: class, string, array.
Príklad:
int a = 5;
int b = a; // kopíruje sa hodnota 5
b = 10;
// a stále je 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // kopíruje sa odkaz
p2.Name = "Bob";
// p1.Name je teraz "Bob"
Hlavný rozdiel je spôsob, akým sa údaje ukladajú a kopírujú: hodnotové typy kopírujú hodnoty, referenčné typy kopírujú odkazy na objekty.