Junior — Middle
Можете ли објаснити у чему се разликују референтни типови од вредносних у језику C#?
sobes.tech АИ
Одговор од АИ
U C#-u, tipovi podataka dele se na vrednosne (value types) i referentne (reference types).
- Vrednosni tipovi direktno čuvaju podatke. Pri dodeljivanju ili prosleđivanju u metodu, vrednost se kopira. Primeri:
int,double,struct. - Referentni tipovi čuvaju referencu na memorijsku oblast gde se podaci nalaze. Pri dodeljivanju, kopira se samo referenca, a ne podaci. Primeri:
class,string, nizovi.
Primer:
int a = 5;
int b = a; // b dobija kopiju vrednosti 5
b = 10; // a ostaje 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 i p1 se odnose na isti objekat
p2.Name = "Bob"; // sada je p1.Name takođe "Bob"
Na ovaj način, promene u referentnim tipovima preko jedne promenljive odražavaju se na sve reference, dok u vrednosnim tipovima — ne.