Quais são as características da classe string em C#?
sobes.tech IA
Resposta da IA
A classe string em C# possui as seguintes características principais:
-
Imutabilidade (Immutability): Após criar um objeto
string, seu conteúdo não pode ser alterado. Qualquer operação que pareça modificar a string (por exemplo, concatenação) na verdade cria um novo objetostring.string s1 = "Hello"; string s2 = s1 + " World"; // Um novo objeto `string` é criado para "Hello World" // O objeto s1 ainda contém "Hello"Isso torna as strings seguras para uso em ambientes multithread e simplifica seu uso como chaves em coleções, como
Dictionary. -
Tipo de referência (Reference Type): Embora as strings frequentemente se comportem como tipos de valor devido à sobrecarga de operadores e comparação por valor,
stringé um tipo de referência.string a = "test"; string b = a; // b referencia ao mesmo objeto "test" no heap string c = "test"; // Se a string "test" já estiver no pool de strings, c também fará referência a ela -
Sobrecarga do operador
+: O operador+é sobrecarregado para concatenação de strings.string firstName = "John"; string lastName = "Doe"; string fullName = firstName + " " + lastName; // Concatenação de stringsA concatenação múltipla usando
+pode ser ineficiente devido à criação de objetos temporários. Para uma concatenação mais eficiente de muitas strings, recomenda-se usarStringBuilder. -
Pool de strings (String Interning): O ambiente de execução .NET possui um mecanismo chamado pool de strings que armazena literais de strings únicos definidos no código. Quando um literal de string é criado, o CLR verifica se essa string já existe no pool. Se sim, retorna uma referência ao objeto existente em vez de criar um novo.
string str1 = "hello"; // "hello" é adicionado (ou já existe) no pool string str2 = "hello"; // str2 referencia o mesmo objeto no pool que str1 Console.WriteLine(ReferenceEquals(str1, str2)); // Mostrará TrueIsso é uma otimização de memória.
-
Amplo conjunto de métodos: A classe
stringfornece uma vasta gama de métodos para manipulação de strings, incluindo busca, substituição, formatação, alteração de maiúsculas/minúsculas e muito mais.string original = " Hello, World! "; string trimmed = original.Trim(); // Remoção de espaços nas extremidades string upper = original.ToUpper(); // Conversão para maiúsculas bool contains = original.Contains("World"); // Verificação de presença de uma substring -
Implementação de
IEnumerable<char>: A string é essencialmente uma coleção de caracteres e implementa a interfaceIEnumerable<char>, permitindo percorrer os caracteres na string e usar LINQ.string text = "C#"; foreach (char c in text) { Console.WriteLine(c); }