首頁 >後端開發 >C++ >為什麼C#String.replace()不修改原始字符串?

為什麼C#String.replace()不修改原始字符串?

Patricia Arquette
Patricia Arquette原創
2025-01-28 19:27:11116瀏覽

Why Doesn't C# String.Replace() Modify the Original String?

了解C#字符串不變性和Replace()方法

>

C#中的字符串操縱有時可能很棘手。 一個共同的陷阱涉及Replace()方法,並且期望它會修改原始字符串。 讓我們檢查一下這個問題。

>

考慮此代碼段:

<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>

Replace()方法更改原始path字符串。 為什麼?因為C#中的字符串是不變的。 這意味著它們在創建後無法更改。 Replace()方法而不是 返回一個新的字符串

。 為了達到所需的結果,您必須將返回的字符串分配給一個變量:>

另外,您可以直接覆蓋原始變量:
<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>

記住:C#字符串是不可變的。 似乎修改字符串的任何操作實際上都會創建一個新的字符串對象。 牢記這一點對於編寫有效和正確的C#代碼至關重要。

以上是為什麼C#String.replace()不修改原始字符串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn