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
Libérer: 2025-01-30 07:36:09
original
372 Les gens l'ont consulté

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:

someTestString = someTestString.Replace(someID.ToString(), sessionID);
Copier après la connexion

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:

var modifiedString = someTestString.Replace(someID.ToString(), sessionID);
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal