Sobes.tech
Junior — Middle

Můžete vysvětlit, čím se liší referenční typy od hodnotových typů v jazyce C#?

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 přímo ukládají data. Při přiřazení nebo předání do metody se kopíruje hodnota. Příklady: int, double, struct.
  • Referenční typy ukládají odkaz na oblast paměti, kde jsou data uložena. Při přiřazení se kopíruje pouze odkaz, nikoli data samotná. Příklady: class, string, pole.

Příklad:

int a = 5;
int b = a; // b dostane kopii hodnoty 5
b = 10; // a zůstane 5

class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 a p1 odkazují na stejný objekt
p2.Name = "Bob"; // nyní je p1.Name také "Bob"

Tímto způsobem se změny v referenčních typech přes jednu proměnnou odrážejí na všech odkazech, zatímco u hodnotových typů nikoli.