Sobes.tech
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.