Tipo mutable

Definición: ¿Qué significa Tipo mutable?

El tipo mutable, en C #, es un tipo de objeto cuyos miembros de datos, como propiedades, datos y campos, se pueden modificar después de su creación.

Los tipos mutables se utilizan en aplicaciones paralelas, donde los objetos de tipo de valor mutable se mantienen en la pila mediante Common Language Runtime (CLR). Esto proporciona cierta optimización, lo que lo hace más rápido que los objetos asignados al montón. Para evitar que se produzcan errores de sincronización en aplicaciones paralelas debido a que varios subprocesos acceden a los datos compartidos, se utilizan tipos mutables con algún tipo de mecanismo de bloqueo.

Debido a su naturaleza inherente, los datos de tipo mutable pueden modificarse durante el tiempo de ejecución, por lo que el tipo mutable se usa a menudo cuando el objeto contiene una gran cantidad de datos modificables. Aunque el tipo mutable no es tan seguro para subprocesos como el tipo inmutable, se usa más a menudo con variables de tipo valor, que se asignan en la pila, mejorando el rendimiento.

Techinfo explica el tipo mutable

Todos los tipos de valores incorporados como int, double, etc., son tipos mutables y se pueden hacer inmutables agregando el modificador "readonly" antes de las variables. Si se especifica un tipo de referencia mutable con un modificador de solo lectura, el compilador de C # genera una advertencia. Al agregar un modificador de solo lectura a un campo de tipo de referencia, el campo no se puede reemplazar con otra instancia del tipo de referencia, pero permitirá que los datos de instancia del campo se modifiquen a través del tipo de referencia.

Por ejemplo, StringBuilder es un tipo de referencia mutable en la biblioteca de .NET Framework, a través del cual el valor de cadena de una instancia creada a partir de este tipo se puede modificar agregando, quitando, reemplazando o insertando caracteres.

Un tipo mutable no debe derivarse de un tipo inmutable porque existe la posibilidad de que un método virtual en la clase derivada lo invalide, de manera que los miembros inmutables se sobrescriban.

La principal limitación del tipo mutable es que al pasar un objeto de tipo mutable (como una estructura) mediante la asignación de una variable local o como parámetro a un método, se transfiere el valor del objeto y no el objeto en sí. Por esto, la copia del objeto se muta y no el original. Este comportamiento puede provocar errores inesperados.

Esta definición se escribió en el contexto de C #