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

Pourquoi «string.replace» ne modifie-t-il pas la chaîne d'origine en C #?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-30 07:36:09297parcourir

Why Doesn't `String.Replace` Modify the Original String in C#?

Comprendre les cordes immuables de C # et String.Replace

En C #, les cordes sont immuables. Cela signifie qu'une fois un objet de chaîne créé, sa valeur ne peut pas être modifiée. La méthode String.Replace ne modifie donc pas la chaîne d'origine; Au lieu de cela, il renvoie une nouvelle chaîne avec les remplacements faits.

Cela mène souvent à la confusion. Affecter simplement le résultat de String.Replace à la variable d'origine apparaît pour ne rien faire, car il crée un nouvel objet de chaîne et attribue sa référence au nom de variable d'origine.

correctement en utilisant String.Replace

Pour réaliser la modification souhaitée, vous devez réaffecter explicitement la chaîne renvoyée à la variable d'origine:

<code class="language-csharp">someTestString = someTestString.Replace(someID.ToString(), sessionID);</code>

Cela écrase la référence de la variable de chaîne d'origine avec la référence à la chaîne modifiée nouvellement créée.

Alternativement, vous pouvez attribuer le résultat à une nouvelle variable:

<code class="language-csharp">var modifiedString = someTestString.Replace(someID.ToString(), sessionID);</code>

Cela préserve la chaîne d'origine et vous permet de travailler séparément avec la version modifiée.

Ce comportement est cohérent sur toutes les méthodes de manipulation de la chaîne C # qui renvoient de nouvelles chaînes plutôt que de modifier en place, y compris Remove, Insert, Trim, et diverses méthodes de sous-chaîne. N'oubliez pas que les cordes sont immuables; Toute opération qui semble modifier une chaîne en crée un nouveau.

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