What Happens When You Forget That Strings Are Immutable

Strings in C# (the System.String type) are immutable.  Functions that act upon a string never change the instance of the string, but instead return a new instance of a string.
For example, to replace a portion of a string, you call the Replace method, assigning the result to the original string (or to a new string).
1
quote = quote.Replace("Hell", "Minnesota");
If you forget that a string is immutable, you may forget to assign the result of this call to something.  The compiler won’t warn you about this.
1
2
3
4
5
6
7
8
string quote = "Go to Heaven for the climate, Hell for the company.";
Console.WriteLine(quote);
 
// Does NOT change quote.  Rather, it creates
// a new string, which we don't store anywhere
quote.Replace("Hell", "Minnesota");
 
Console.WriteLine(quote);


The string is not changed, as we might have expected.
1008-001