首页 > 后端开发 > C++ > 为什么C#String.replace()不修改原始字符串?

为什么C#String.replace()不修改原始字符串?

Patricia Arquette
发布: 2025-01-28 19:27:11
原创
119 人浏览过

Why Doesn't C# String.Replace() Modify the Original String?

了解C#字符串不变性和Replace()方法

>

C#中的字符串操纵有时可能很棘手。 一个共同的陷阱涉及Replace()方法,并且期望它会修改原始字符串。 让我们检查一下这个问题。

>

考虑此代码段:

<code class="language-csharp">string path = "C:\Users\Desktop\Project\bin\Debug";
path.Replace(@"\bin\Debug", @"\Resource\People");
Console.WriteLine(path); // Output: C:\Users\Desktop\Project\bin\Debug (Unchanged!)</code>
登录后复制

Replace()方法更改原始path字符串。 为什么?因为C#中的字符串是不变的。 这意味着它们在创建后无法更改。 Replace()方法而不是 返回一个新的字符串

。 为了达到所需的结果,您必须将返回的字符串分配给一个变量:>

另外,您可以直接覆盖原始变量:
<code class="language-csharp">string path = "C:\Users\Desktop\Project\bin\Debug";
string newPath = path.Replace(@"\bin\Debug", @"\Resource\People");
Console.WriteLine(newPath); // Output: C:\Users\Desktop\Project\Resource\People</code>
登录后复制

记住:C#字符串是不可变的。 似乎修改字符串的任何操作实际上都会创建一个新的字符串对象。 牢记这一点对于编写有效和正确的C#代码至关重要。

以上是为什么C#String.replace()不修改原始字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板