C#stringreplace不起作用

我想用另一个stringreplace一部分string。 更准确地说我有C:\Users\Desktop\Project\bin\Debug

我试图用\Resources\Peoplereplace\bin\Debug

我已经尝试了以下内容:

a) path.Replace(@"\bin\Debug", @"\Resource\People\VisitingFaculty.txt");

b) path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");

以上三种方法似乎都不起作用,因为string保持不变,没有任何东西被replace。 我做错了什么?

问题是string是不可变的。 replace方法,子串等不会改变string本身。 他们创build一个新的string,并将其replace。 所以对于上面的代码是正确的,应该是

 path1 = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt"); 

要不就

 path = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt"); 

如果另一个variables不需要

编辑这个答案也是一个提醒,string是不可改变的。 你对他们所做的任何改变实际上都会产生一个新的string。 所以,请记住所有事情(包括内存pipe理)

path.Replace方法实际上返回一个string 。 您应该执行以下操作:

 path = path.Replace("firstString", "secondString"); 
 String.Replace(string,string) returns string. 

所以,在一些stringvariables中保存新的path。

 path = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");