Heim > Backend-Entwicklung > C++ > Warum ändert `String.Replace` die ursprüngliche Zeichenfolge in C#nicht?

Warum ändert `String.Replace` die ursprüngliche Zeichenfolge in C#nicht?

Mary-Kate Olsen
Freigeben: 2025-01-30 07:36:09
Original
325 Leute haben es durchsucht

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

Verständnis der unveränderlichen Zeichenfolgen von C#und String.Replace

In C#sind Zeichenfolgen unveränderlich. Dies bedeutet, dass sein Wert nicht geändert werden kann, sobald ein String -Objekt erstellt wurde. Die String.Replace -Methode ändert daher die ursprüngliche Zeichenfolge nicht. Stattdessen gibt es eine neue Zeichenfolge mit den erstellten Ersetzungen zurück.

Dies führt häufig zu Verwirrung. Einfach das Ergebnis von String.Replace zurück der ursprünglichen Variablen zuweisen , um nichts zu tun, da es ein neues String -Objekt erstellt und seine Referenz auf den ursprünglichen Variablennamen zugewiesen wird.

korrekt mit String.Replace

Um die gewünschte Änderung zu erreichen, müssen Sie die zurückgegebene Zeichenfolge explizit der ursprünglichen Variablen zuweisen:

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

Dies überschreibt die Referenz der ursprünglichen String -Variable unter Bezugnahme auf die neu erstellte, modifizierte Zeichenfolge.

Alternativ können Sie das Ergebnis einer neuen Variablen zuweisen:

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

Dies bewahrt die ursprüngliche Zeichenfolge und ermöglicht es Ihnen, separat mit der geänderten Version zu arbeiten.

Dieses Verhalten ist über alle C# String -Manipulationsmethoden konsistent, die neue Zeichenfolgen zurückgeben, anstatt sich zu ändern, einschließlich Remove, Insert, Trim und verschiedenen Substring -Methoden. Denken Sie daran, dass Saiten unveränderlich sind; Jede Operation, die anscheinend eine Zeichenfolge geändert hat, erstellt tatsächlich eine neue.

Das obige ist der detaillierte Inhalt vonWarum ändert `String.Replace` die ursprüngliche Zeichenfolge in C#nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage