Sobes.tech
Junior — Middle

V čem se liší referenční datové typy od hodnotových typů v programování?

sobes.tech AI

Odpověď od AI

V C# jsou datové typy rozděleny na hodnotové typy (value types) a referenční typy (reference types).

Hodnotové typy ukládají data přímo. Při přiřazení nebo předání do metody se kopíruje samotná hodnota. Příklady: int, double, struct, bool.

Referenční typy ukládají odkaz na oblast paměti, kde jsou data uložena. Při přiřazení se kopíruje odkaz, nikoli data, takže několik proměnných může odkazovat na stejný objekt. Příklady: class, string, array.

Příklad:

int a = 5;
int b = a; // kopíruje hodnotu 5
b = 10;
// a je stále 5

class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // kopíruje odkaz
p2.Name = "Bob";
// p1.Name je nyní "Bob"

Hlavní rozdíl je tedy v tom, jak jsou data uložena a kopírována: hodnotové typy kopírují hodnoty, referenční typy kopírují odkazy na objekty.