C# Language
Inmutabilidad
Buscar..
Clase System.String
En C # (y .NET) una cadena está representada por la clase System.String. La palabra clave de string
es un alias para esta clase.
La clase System.String es inmutable, es decir, una vez creado, su estado no puede alterarse.
Por lo tanto, todas las operaciones que realice en una cadena como Subcadena, Eliminar, Reemplazar, concatenación utilizando el operador +
, etc. crearán una nueva cadena y la devolverán.
Vea el siguiente programa de demostración:
string str = "mystring";
string newString = str.Substring(3);
Console.WriteLine(newString);
Console.WriteLine(str);
Esto imprimirá string
y mystring
respectivamente.
Cuerdas e inmutabilidad.
Los tipos inmutables son tipos que, cuando se modifican, crean una nueva versión del objeto en la memoria, en lugar de cambiar el objeto existente en la memoria. El ejemplo más simple de esto es el tipo de string
incorporado.
Tomando el siguiente código, que agrega "mundo" a la palabra "Hola"
string myString = "hello";
myString += " world";
Lo que sucede en la memoria en este caso es que se crea un nuevo objeto cuando se agrega a la string
en la segunda línea. Si hace esto como parte de un bucle grande, existe la posibilidad de que esto cause problemas de rendimiento en su aplicación.
El equivalente mutable para una string
es un StringBuilder
Tomando el siguiente código
StringBuilder myStringBuilder = new StringBuilder("hello");
myStringBuilder.append(" world");
Cuando ejecuta esto, está modificando el objeto StringBuilder
en la memoria.