Maison >développement back-end >C++ >Pourquoi «String.replace» met à jour ma valeur de chaîne en C #?
Comprendre les cordes immuables de C # et string.Replace
Le comportement de string.Replace
en C # entraîne souvent une confusion. La clé est de comprendre que les chaînes en C # sont immuables . Cela signifie qu'une fois une chaîne créée, sa valeur ne peut pas être modifiée.
La méthode string.Replace
ne modifie pas la chaîne d'origine; Au lieu de cela, il renvoie une nouvelle chaîne avec les remplacements effectués. C'est pourquoi simplement appeler string.Replace
sans réaffecter le résultat laisse la chaîne d'origine inchangée.
Correction du code:
Pour voir les modifications reflétées, vous devez attribuer le résultat de string.Replace
à la variable de chaîne d'origine. Il y a deux façons de le faire:
Réaffecter à la variable d'origine:
<code class="language-csharp">someTestString = someTestString.Replace(someID.ToString(), sessionID);</code>
Cela met directement à jour someTestString
avec la chaîne modifiée.
Assignez une nouvelle variable:
<code class="language-csharp">string newString = someTestString.Replace(someID.ToString(), sessionID);</code>
Cela crée une nouvelle variable de chaîne, newString
, contenant la chaîne modifiée. Utilisez newString
à l'avenir.
Pourquoi l'immuabilité?
L'immuabilité des chaînes est un choix de conception qui améliore la prévisibilité du code et la sécurité. Il empêche les effets secondaires inattendus et facilite le débogage. Parce que les chaînes sont immuables, plusieurs parties de votre code peuvent utiliser la même chaîne sans se soucier d'une partie qui la change accidentellement pour une autre. Des méthodes comme Replace
, Remove
et Insert
créent et renvoient toujours de nouvelles chaînes, en préservant l'intégrité de la chaîne d'origine.
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!