Maison >développement back-end >C++ >Pourquoi le remplacement des chaînes ne fonctionne-t-il pas comme prévu en C #?

Pourquoi le remplacement des chaînes ne fonctionne-t-il pas comme prévu en C #?

Susan Sarandon
Susan Sarandonoriginal
2025-01-28 19:41:121053parcourir

Why Doesn't String Replacement Work as Expected in C#?

Comprendre l'immuabilité et le remplacement des cordes en C #

Lorsque vous travaillez avec des chaînes en C #, les développeurs rencontrent souvent un comportement inattendu lors de la tentative de remplacement des chaînes. Un scénario commun consiste à modifier les chemins de fichier, par exemple, la modification de "BindeBug" à "ResourcesPeople". Le problème découle de la caractéristique fondamentale des chaînes en C #: elles sont immuables.

Méthodes comme Replace() Ne modifiez pas la chaîne d'origine; Ils créent et renvoient une chaîne nouvelle contenant les remplacements. Cela signifie que le code suivant sera pas modifier path:

<code class="language-csharp">path.Replace(@"\bin\Debug", @"\Resource\People\VisitingFaculty.txt");</code>

Pour atteindre le résultat souhaité, vous devez attribuer le résultat de Replace() à une variable:

<code class="language-csharp">string newPath = path.Replace(@"\bin\Debug", @"\Resource\People\VisitingFaculty.txt");</code>

ou, plus concise:

<code class="language-csharp">path = path.Replace(@"\bin\Debug", @"\Resource\People\VisitingFaculty.txt");</code>

Cela met explicitement à jour path avec la chaîne modifiée.

Rappelez-vous: la manipulation de la chaîne en C # génère toujours un nouvel objet String. Soyez conscient de cette immuabilité pour éviter les résultats inattendus et les problèmes potentiels de gestion de la mémoire, en particulier lorsque vous traitez des opérations de chaînes fréquentes ou à grande échelle.

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