Sobes.tech
Junior — Middle

Da li je String u većini programskih jezika referentni tip ili tip vrednosti?

sobes.tech АИ

Одговор од АИ

U većini programskih jezika, nizovi (String) se implementiraju kao referentni tipovi, a ne kao tipovi vrednosti.

Specifično, u C#-u, string je referentni tip koji se ponaša kao nepromenljiv (immutable) objekat. To znači:

  • Promenljiva tipa string sadrži referencu na objekat u memoriji.
  • Kada se menja niz, kreira se novi objekat, a postojeći se ne menja.
  • Zahvaljujući nepromenljivosti, nizovi se mogu sigurno koristiti u višestrukim nitima i mogu se keširati.

Ovo se razlikuje od tipova vrednosti (npr. int, struct), koji se direktno čuvaju u promenljivoj i kopiraju prilikom dodele.

Primer:

string a = "hello";
string b = a;
a = "world"; // b i dalje ostaje "hello", jer su nizovi nepromenljivi i a sada referiše na novi objekat