Comprendre l'immuabilité de la chaîne C # et la méthode Replace()
La manipulation de la chaîne en C # peut parfois être délicate. Un piège commun implique la méthode Replace()
et l'attente qu'elle modifie la chaîne d'origine. Examinons ce problème.
Considérez cet extrait de code:
1 2 3 | string path = "C:\Users\Desktop\Project\bin\Debug" ;
path.Replace(@ "\bin\Debug" , @ "\Resource\People" );
Console.WriteLine(path);
|
Copier après la connexion
La méthode Replace()
ne modifie pas la chaîne d'origine . Pourquoi? Parce que les cordes en C # sont path
immuables . Cela signifie qu'ils ne peuvent pas être modifiés après la création. La méthode à la place Replace()
renvoie une nouvelle chaîne avec les remplacements faits.
Pour atteindre le résultat souhaité, vous devez affecter la chaîne renvoyée à une variable:
1 2 3 | string path = "C:\Users\Desktop\Project\bin\Debug" ;
string newPath = path.Replace(@ "\bin\Debug" , @ "\Resource\People" );
Console.WriteLine(newPath);
|
Copier après la connexion
Alternativement, vous pouvez écraser directement la variable d'origine:
1 2 3 | string path = "C:\Users\Desktop\Project\bin\Debug" ;
path = path.Replace(@ "\bin\Debug" , @ "\Resource\People" );
Console.WriteLine(path);
|
Copier après la connexion
Rappelez-vous: les chaînes C # sont immuables. Toute opération qui semble modifier une chaîne crée en fait un nouvel objet de chaîne. Garder cela à l'esprit est crucial pour écrire efficace et corriger le code C #.
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!