Sobes.tech
Junior — Middle

A legtöbb programozási nyelvben a String referencia típus vagy érték típus?

sobes.tech MI

Válasz az MI-től

A legtöbb programozási nyelvben a szövegek (String) hivatkozási típusként vannak megvalósítva, nem értéktípusként.

Különösen, a C#-ban a string egy hivatkozási típus, amely immutábilis (nem változtatható) objektumként viselkedik. Ez azt jelenti:

  • A string típusú változó egy memóriahelyen lévő objektumra mutató hivatkozást tartalmaz.
  • A szöveg módosításakor egy új objektum jön létre, a meglévő nem változik.
  • Az immutábilitás miatt a szövegek biztonságosan használhatók több szálon futó környezetben, és cache-elhetők.

Ez különbözik az értéktípusoktól (pl. int, struct), amelyek közvetlenül a változóban tárolódnak, és másolódnak az értékadáskor.

Példa:

string a = "hello";
string b = a;
a = "world"; // b még mindig "hello", mert a szövegek immutábilisak, és a most egy új objektumra mutat