¿Cuáles son las características de la clase string en C#?
sobes.tech AI
Respuesta de la IA
La clase string en C# posee las siguientes características clave:
-
Inmutabilidad (Immutability): Después de crear un objeto
string, su contenido no puede ser cambiado. Cualquier operación que parezca modificar la cadena (por ejemplo, concatenación) en realidad crea un nuevo objetostring.string s1 = "Hello"; string s2 = s1 + " World"; // Se crea un nuevo objeto string para "Hello World" // El objeto s1 todavía contiene "Hello"Esto hace que las cadenas sean seguras para su uso en entornos multihilo y simplifica su uso como claves en colecciones, como
Dictionary. -
Tipo de referencia (Reference Type): Aunque las cadenas a menudo se comportan como tipos de valor gracias a la sobrecarga de operadores y comparación por valor,
stringes un tipo de referencia.string a = "test"; string b = a; // b referencia al mismo objeto "test" en el montón string c = "test"; // Si la cadena "test" ya está en el pool de cadenas, c también referenciará esa instancia -
Sobrecarga del operador
+: El operador+está sobrecargado para concatenar cadenas.string firstName = "John"; string lastName = "Doe"; string fullName = firstName + " " + lastName; // Concatenación de cadenasLa concatenación múltiple usando
+puede ser ineficiente debido a la creación de objetos temporales. Para una concatenación más eficiente de muchas cadenas, se recomienda usarStringBuilder. -
Pool de cadenas (String Interning): El entorno de ejecución .NET tiene un mecanismo llamado pool de cadenas que almacena literales de cadenas únicos definidos en el código. Cuando se crea un literal de cadena, CLR verifica si esa cadena ya existe en el pool. Si es así, devuelve una referencia al objeto existente en lugar de crear uno nuevo.
string str1 = "hello"; // "hello" se añade (o ya existe) en el pool string str2 = "hello"; // str2 referencia al mismo objeto en el pool que str1 Console.WriteLine(ReferenceEquals(str1, str2)); // Mostrará TrueEsto es una optimización de memoria.
-
Amplio conjunto de métodos: La clase
stringproporciona una amplia gama de métodos para manipular cadenas, incluyendo búsqueda, reemplazo, formateo, cambio de mayúsculas/minúsculas y mucho más.string original = " Hello, World! "; string trimmed = original.Trim(); // Eliminación de espacios en los extremos string upper = original.ToUpper(); // Conversión a mayúsculas bool contains = original.Contains("World"); // Verificación de la presencia de una subcadena -
Implementación de
IEnumerable<char>: La cadena en realidad es una colección de caracteres y implementa la interfazIEnumerable<char>, lo que permite recorrer los caracteres en la cadena y usar LINQ.string text = "C#"; foreach (char c in text) { Console.WriteLine(c); }