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.