Taula de continguts:
Definició: què significa Mutable Type?
El tipus mutable, en C #, és un tipus d'objecte els membres de les seves dades, com ara propietats, dades i camps, es poden modificar després de la seva creació.
Els tipus mutables s'utilitzen en aplicacions paral·leles, on els objectes de tipus de valor mutable es mantenen a la pila per Common Language Runtime (CLR). Això proporciona una mica d’optimització, cosa que la fa més ràpida que els objectes assignats en massa. Per evitar que es produeixin errors de sincronització en aplicacions paral·leles a causa de diversos fils que accedeixen a les dades compartides, s’utilitzen tipus mutables amb algun tipus de mecanisme de bloqueig.
A causa de la seva naturalesa inherent, les dades del tipus mutable es poden modificar durant el temps d'execució, de manera que el tipus mutable s'utilitza sovint quan l'objecte conté una gran quantitat de dades canviables. Tot i que el tipus mutable no és tan segur i no tan segur que el tipus immutable, s’utilitza més sovint amb variables de tipus de valor, que s’assignen a la pila, millorant el rendiment.
Techopedia explica el tipus mutable
Tots els tipus de valor incorporats, com int, doble, etc., són tipus mutables i es poden fer immutables afegint el modificador "només" abans de les variables. Si s'especifica un tipus de referència mutable amb un modificador de lectura, el compilador C # genera un avís. Si afegeix un modificador de manera senzilla a un camp de tipus de referència, el camp no es pot substituir per una altra instància del tipus de referència, però permetrà que les dades d'instància del camp es puguin modificar mitjançant el tipus de referència.
Per exemple, StringBuilder és un tipus de referència mutable a la biblioteca de framework .NET, a través del qual es pot modificar el valor de cadena d'una instància creada a partir d'aquest tipus mitjançant l'aplicació, l'eliminació, la substitució o la inserció de caràcters.
Un tipus mutable no s'ha de derivar d'un tipus immutable perquè hi ha la possibilitat que un mètode virtual de la classe derivada el substitueixi de manera que es sobreescriuen els membres immutables.
La principal limitació de tipus mutable és que mentre es passa un objecte de tipus mutable (com struct) mitjançant l'assignació d'una variable local o com a paràmetre a un mètode, el valor de l'objecte es transfereix i no l'objecte en si. Per això, la còpia de l'objecte queda mutada i no l'original. Aquest comportament pot comportar errors inesperats.