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!