Maison >développement back-end >C++ >Pourquoi c # string.replace () ne modifie-t-il pas la chaîne d'origine?

Pourquoi c # string.replace () ne modifie-t-il pas la chaîne d'origine?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-28 19:27:11194parcourir

Why Doesn't C# String.Replace() Modify the Original String?

Comprendre l'immuabilité de la chaîne C # et la méthode Replace()

La manipulation de la chaîne en C # peut parfois être délicate. Un piège commun implique la méthode Replace() et l'attente qu'elle modifie la chaîne d'origine. Examinons ce problème.

Considérez cet extrait de code:

<code class="language-csharp">string path = "C:\Users\Desktop\Project\bin\Debug";
path.Replace(@"\bin\Debug", @"\Resource\People");
Console.WriteLine(path); // Output: C:\Users\Desktop\Project\bin\Debug (Unchanged!)</code>

La méthode Replace() ne modifie pas la chaîne d'origine . Pourquoi? Parce que les cordes en C # sont path immuables . Cela signifie qu'ils ne peuvent pas être modifiés après la création. La méthode à la place Replace() renvoie une nouvelle chaîne avec les remplacements faits.

Pour atteindre le résultat souhaité, vous devez affecter la chaîne renvoyée à une variable:

<code class="language-csharp">string path = "C:\Users\Desktop\Project\bin\Debug";
string newPath = path.Replace(@"\bin\Debug", @"\Resource\People");
Console.WriteLine(newPath); // Output: C:\Users\Desktop\Project\Resource\People</code>
Alternativement, vous pouvez écraser directement la variable d'origine:

<code class="language-csharp">string path = "C:\Users\Desktop\Project\bin\Debug";
path = path.Replace(@"\bin\Debug", @"\Resource\People");
Console.WriteLine(path); // Output: C:\Users\Desktop\Project\Resource\People</code>
Rappelez-vous: les chaînes C # sont immuables. Toute opération qui semble modifier une chaîne crée en fait un nouvel objet de chaîne. Garder cela à l'esprit est crucial pour écrire efficace et corriger le code C #.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn