.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中文网其他相关文章!