Why does one of my values change?
<p>So I have this;</p>

<pre><code>var emailA = ConstructEmailA();
SnedEmailA(emailA.Append("&lt;/body&gt;").ToString());

var emailB = ConstructEmailB(emailA);
SendEmailB(emailB.ToString());
</code></pre>

<p>Which works fine. Essentially, ConstructEmailB takes emailA and adds to it. However, I originally had this:</p>

<pre><code>var emailA = ConstructEmailA();
var emailB = ConstructEmailB(emailA);
SnedEmailA(emailA.Append("&lt;/body&gt;").ToString());                
SendEmailB(emailB.ToString());
</code></pre>

<p>Which did not work as expected. Instead of emailA and emailB being different, emailA contained the same info as emailB. How come?</p>

<p>Here is my ConstructEmailB method:</p>

<pre><code>private StringBuilder ConstructEmailB(StringBuilder email)
{
    email.Append("Append stuff");

    return email;
}
</code></pre>
