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 サイトの他の関連記事を参照してください。