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()
は元の文字列を変更しません。 なぜ? c#の文字列はpath
不変だからです。 これは、作成後に変更できないことを意味します。 代わりにメソッドは、交換が行われた新しい文字列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#String.Replace()が元の文字列を変更しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。