C# string replace does not actually replace the value in the string

The problem is that strings are immutable. The methods replace, substring, etc. do not change the string itself. They create a new string and replace it. So for the above code to be correct, it should be

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

Or just

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

if another variable is not needed.

This answer is also a reminder that strings are immutable. Any change you make to them will in fact create a new string. So keep that in mind with everything that involves strings, including memory management. As stated in the documentation here.

String objects are immutable: they cannot be changed after they have been created. All of the String methods and C# operators that appear to modify a string actually return the results in a new string object


The path.Replace method actually returns a string. You should do the following:

path = path.Replace("firstString", "secondString");

String.Replace(string,string) returns string. 

So, save the new path in some string variable.

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

Tags:

C#

.Net

String