C#の不変の文字列とstring.Replace
c#でのstring.Replace
の動作は、しばしば混乱につながります。 重要なのは、c#の文字列が不変であることを理解することです。これは、文字列が作成されると、その値を変更できないことを意味します。
メソッドは元の文字列を変更しません。代わりに、string.Replace
は、交換が行われた新しい文字列を返します。 これが、結果を再割り当てずに単に呼び出して、元の文字列を変更しない理由です。
string.Replace
コードの修正:
反映された変更を確認するには、の結果を元の文字列変数に割り当てる必要があります。 これを行うには、2つの方法があります
string.Replace
これにより、変更された文字列を使用してを直接更新します
<code class="language-csharp">someTestString = someTestString.Replace(someID.ToString(), sessionID);</code>
新しい変数に割り当てます:someTestString
を使用してください。
<code class="language-csharp">string newString = someTestString.Replace(someID.ToString(), sessionID);</code>
なぜ不変?
newString
文字列不変性は、コードの予測可能性と安全性を高める設計選択です。 予期しない副作用を防ぎ、デバッグを容易にします。 文字列は不変であるため、コードの複数の部分が同じ文字列を使用して、ある部分を誤って別の部分に変更することを心配することができません。 newString
、
以上が`string.replace`はc#で私の文字列値を更新しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。