Tartalomjegyzék:
Meghatározás - Mit jelent a változhatatlan típus?
A C # kontextusában egy változatlan típusú objektum olyan objektumtípus, amelynek adatait a létrehozása után nem lehet megváltoztatni. A megváltoztathatatlan típus az objektum tulajdonságát vagy állapotát csak olvashatóként állítja be, mert az inicializálás során hozzárendelése után nem módosítható.
Az átalakíthatatlan típusokat a hatékony memóriakezeléshez és a jobb sebességhez tervezték, ami szinkronizálási követelményekkel rendelkező objektumokhoz alkalmas. Az illeszthetetlenség jobb kódolvashatóságot biztosít a program állapotának láthatóságának megváltoztatásával és az állapotot megváltoztató műveletek elválasztásával azoktól, amelyek nem. Az átalakíthatatlan típusok nagyobb biztonságot nyújtanak, mint a módosítható típusok.
Megváltoztathatatlan típust használnak, ahol az adatoknak egyszeri hozzárendelés után is fenn kell maradniuk, az adatok jövőbeni megváltoztatására vonatkozó követelmény nélkül. Mivel a megváltoztathatatlan objektumok nem változtatják meg állapotát, többszálú és többfolyamatú forgatókönyvekben hasznosabbak, mivel a többszörös szálak elolvashatnak vagy írhatnak egy objektumot, ami versenyfeltételeket és szinkronizálási problémákat okozhat.
A Techopedia ismerteti az Immvable Type-t
A változatlan típusú objektumok a "const" és "readonly" kulcsszavak használatával hozhatók létre. Míg a readonly lehetővé teszi a mező módosítását a konstruktoron belül, a const nem. A számokat, a karakterláncokat és a nullot csak const mezőként lehet használni, amelyek valóban változatlanok. A Readonly nem igazán megváltoztathatatlan, mert csak egyszer írja meg. Tehát nem olyan fordítási időállandó, mint a const mező. A valóban megváltoztathatatlan tárgyak soha nem változtatják meg belső állapotukat, és ezért eredendően szálbiztosak.
A System.String osztály megváltoztathatatlan referencia típus, amelyet a .NET keret osztályosztály könyvtár biztosít. Ez az osztály új karakterláncobjektumot hoz létre belsőleg minden karakterlánc-manipulációs művelethez. Az ilyen típusú objektumok tartalma nem változik, bár a szintaxis úgy jelenik meg, mintha a tartalom megváltoztatható lenne. Ezenkívül a karakterlánc hash table kulcsként használatos a hash értékek kiszámításához, hogy elkerüljék a hash adatszerkezet megsérülésének kockázatát.
A változatlan típusok fő hátránya, hogy több erőforrást igényelnek, mint más objektumtípusok.