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