Sobes.tech
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.