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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow