.NET字符串操作詳解:為什麼string.Replace
無法修改原字符串?
Replace
方法無法修改字符串以下代碼片段中,string.Replace
方法似乎無法修改字符串:
<code class="language-csharp">string someTestString = "<a href=\"myfoldert/108716305-1.jpg\" target=\"_blank\">108716305-1.jpg</a>"; someTestString.Replace("108716305", "NewId42");</code>
即使參數有效,字符串仍然保持不變。
.NET中的字符串是不可變的,這意味著它們的內容無法直接修改。調用string.Replace
時,它會創建一個包含替換值的新字符串,而不是修改原始字符串。
要更新字符串,您需要:
string.Replace
的結果存儲在一個新的變量中:<code class="language-csharp">var newString = someTestString.Replace(someID.ToString(), sessionID);</code>
<code class="language-csharp">someTestString = someTestString.Replace(someID.ToString(), sessionID);</code>
需要注意的是,這適用於.NET中的所有字符串操作函數,例如Remove
、Insert
、Trim
和Substring
變體,因為它們都返回一個新字符串,而不是操作原始字符串。
以上是為什麼不修改.NET中的原始字符串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!