What's the practical difference between a variable being mutable vs non-mutable
<p>I'm just learning C# and working with some examples of strings and StringBuilder.  From my reading, I understand that if I do this:</p>

<pre><code>string greeting = "Hello";
greeting += " my good friends";
</code></pre>

<p>that I get a new string called greeting with the concatenated value.  I understand that the run-time(or compiler, or whatever) is actually getting rid of the reference to the original string greeting and replacing it with a new concatenated one of the same name.</p>

<p>I was just wondering what practical application/ramification this has.  Why does it matter to me how C# shuffles strings around in the background when the effect to me is simply that my initial variable changed value.</p>

<p>I was wondering if someone could give me a scenario where a programmer would need to know the difference.  * a simple example would be nice, as I'm a relative beginner to this.</p>

<p>Thanks in advance..</p>
