ホームページ >バックエンド開発 >C++ >C#String.Replace()が元の文字列を変更しないのはなぜですか?

C#String.Replace()が元の文字列を変更しないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-28 19:27:11117ブラウズ

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()元の文字列を変更しません。 なぜ? 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。