Heim >Backend-Entwicklung >C++ >Warum modifiziert C# String.Replace () die ursprüngliche Zeichenfolge nicht?
Verständnis der Unveränderlichkeit von C# und der Replace()
-Methode
String Manipulation in C# kann manchmal schwierig sein. Eine häufige Gefahr beinhaltet die Replace()
-Methode und die Erwartung, dass sie die ursprüngliche Zeichenfolge modifiziert. Lassen Sie uns dieses Problem untersuchen.
Betrachten Sie diesen Code -Snippet:
<code class="language-csharp">string path = "C:\Users\Desktop\Project\bin\Debug"; path.Replace(@"\bin\Debug", @"\Resource\People"); Console.WriteLine(path); // Output: C:\Users\Desktop\Project\bin\Debug (Unchanged!)</code>
Die Replace()
-Methode ändert nicht die ursprüngliche path
Zeichenfolge. Warum? Weil Strings in C# unveränderlich sind. Dies bedeutet, dass sie nach der Schöpfung nicht geändert werden können. Die Replace()
-Methode stattdessen gibt eine neue String mit den erstellten Ersatzstücken zurück.
Um das gewünschte Ergebnis zu erzielen, müssen Sie die zurückgegebene Zeichenfolge einer Variablen zuweisen:
<code class="language-csharp">string path = "C:\Users\Desktop\Project\bin\Debug"; string newPath = path.Replace(@"\bin\Debug", @"\Resource\People"); Console.WriteLine(newPath); // Output: C:\Users\Desktop\Project\Resource\People</code>
Alternativ können Sie die ursprüngliche Variable direkt überschreiben:
<code class="language-csharp">string path = "C:\Users\Desktop\Project\bin\Debug"; path = path.Replace(@"\bin\Debug", @"\Resource\People"); Console.WriteLine(path); // Output: C:\Users\Desktop\Project\Resource\People</code>
Denken Sie daran: C# Strings sind unveränderlich. Jede Operation, die anscheinend eine Zeichenfolge geändert hat, erstellt tatsächlich ein neues String -Objekt. Dies ist entscheidend für das Schreiben effizienter und korrigierter C# -Codes.
.Das obige ist der detaillierte Inhalt vonWarum modifiziert C# String.Replace () die ursprüngliche Zeichenfolge nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!