Sobes.tech
Junior — Middle

Môžete vysvetliť, v čom sa líšia referenčné typy od hodnotových typov v jazyku C#?

sobes.tech AI

Odpoveď od AI

V C# sú dátové typy rozdelené na hodnotové (value types) a referenčné (reference types).

  • Hodnotové typy ukladajú údaje priamo. Pri priraďovaní alebo odovzdaní do metódy sa kopíruje hodnota. Príklady: int, double, struct.
  • Referenčné typy ukladajú odkaz na oblasť pamäte, kde sa nachádzajú údaje. Pri priraďovaní sa kopíruje iba odkaz, nie údaje samotné. Príklady: class, string, pole.

Príklad:

int a = 5;
int b = a; // b dostane kópiu hodnoty 5
b = 10; // a zostáva 5

class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 a p1 odkazujú na ten istý objekt
p2.Name = "Bob"; // teraz je p1.Name tiež "Bob"

Takto sa zmeny v referenčných typoch cez jednu premennú odrážajú na všetkých referenciách, zatiaľ čo v hodnotových typoch — nie.