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#文字列は不変です。 文字列を変更するように見える操作は、実際に新しい文字列オブジェクトを作成します。 これを念頭に置いて、効率的で正しいC#コードを書くためには重要です。
以上がC#String.Replace()が元の文字列を変更しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。