Heim > Backend-Entwicklung > C++ > Warum modifiziert String.Replace meine Zeichenfolge nicht in C#?

Warum modifiziert String.Replace meine Zeichenfolge nicht in C#?

Patricia Arquette
Freigeben: 2025-01-28 19:21:09
Original
208 Leute haben es durchsucht

Why Doesn't String.Replace Modify My String in C#?

C# String Uner Neutability und String.Replace ()

Eine häufige Verwirrungsquelle für C# -entwickler ist das Verhalten der String.Replace() -Methode. Viele erwarten, dass es die ursprüngliche Zeichenfolge ändern wird, aber dies nicht der Fall ist. Dies liegt daran, dass Saiten in C# unveränderlich sind.

Nehmen wir an, Sie möchten "C:\Users\Desktop\Project\bin\Debug" in "C:\Users\Desktop\Project\Resources\People" durch Ersetzen "\bin\Debug" durch "\Resources\People" ändern. Versuche wie:

  1. path.Replace(@"\bin\Debug", @"\Resource\People");
  2. path.Replace("\bin\Debug", "\Resource\People");

verändert die ursprüngliche path -Sziel nicht. Der Grund? String.Replace() Gibt eine neue Zeichenfolge mit den erstellten Ersatzteilen zurück; es ändert das Original nicht.

Die Lösung: Neuzuweisung

Um String.Replace() richtig zu verwenden, müssen Sie die zurückgegebene modifizierte Zeichenfolge einer Variablen zuweisen:

<code class="language-csharp">string path = "C:\Users\Desktop\Project\bin\Debug";
string newPath = path.Replace("\bin\Debug", "\Resources\People"); 
// newPath now holds the modified string.</code>
Nach dem Login kopieren

Sie können auch die ursprüngliche Variable überschreiben:

<code class="language-csharp">path = path.Replace("\bin\Debug", "\Resources\People");
// path now holds the modified string.</code>
Nach dem Login kopieren

Unveränderlichkeit

verstehen

Dieses Verhalten beruht auf der grundlegenden Unveränderlichkeit von Zeichenfolgen in C#. Jede Operation, die eine Zeichenfolge zu ändern scheint, erstellt tatsächlich ein neues String -Objekt. Dies gilt für alle String -Methoden, die sich auf die Speicherverwaltung auswirken. In der C# -Dokumentation heißt es eindeutig dieses Merkmal. Denken Sie daran, wenn Sie mit Saiten arbeiten, um unerwartete Ergebnisse zu vermeiden.

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

Quelle:php.cn
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