Default Parameter passing in C#
<p>Maybe an old question, but am not finding anything comprehensive on the internet.</p>

<p>If the default parameter passing method in C# is By value (as per <a href="http://www.yoda.arachsys.com/csharp/parameters.html" rel="nofollow">this</a>), then how does it affect the initial Reference Type variable. </p>

<p>i.e. In the below example, Why will it print "Hello World" than Just "Hello", if it was parameter passing by value?</p>

<pre><code>void Foo (StringBuilder x)
{
    x.Append (" World");
}   

StringBuilder y = new StringBuilder();
y.Append ("Hello");
Foo (y);
Console.WriteLine (y);
</code></pre>
