ホームページ >バックエンド開発 >C++ >なぜ「string.replace」はc#の元の文字列を変更しないのですか?

なぜ「string.replace」はc#の元の文字列を変更しないのですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-30 07:36:09292ブラウズ

Why Doesn't `String.Replace` Modify the Original String in C#?

C#の不変の文字列とString.Replace

を理解します

c#では、文字列は不変です。 これは、文字列オブジェクトが作成されると、その値を変更できないことを意味します。 したがって、String.Replaceメソッドは、元の文字列を変更しません。代わりに、それはを返します。 これはしばしば混乱につながります。 元の変数に戻る結果を単に割り当てるだけで、新しい文字列オブジェクトを作成し、元の変数名への参照を割り当てているため、何もしないように

に見えます。

String.Replace

を正しく使用しています

目的の変更を実現するには、返された文字列を元の変数に明示的に再割り当てする必要があります。 これにより、新しく作成された変更された文字列を参照して、元の文字列変数の参照を上書きします。 String.Replaceまたは、結果を新しい変数に割り当てることができます:

これにより、元の文字列が保存され、変更されたバージョンを個別に動作させることができます。

この動作は、
<code class="language-csharp">someTestString = someTestString.Replace(someID.ToString(), sessionID);</code>

、さまざまなサブストリング方法を含む、配置されているのではなく、新しい文字列を返すすべてのC#文字列操作方法で一貫しています。 文字列は不変であることを忘れないでください。文字列を変更するように見える操作は、実際に新しいものを作成します。

以上がなぜ「string.replace」はc#の元の文字列を変更しないのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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