title: Breaking C# references
body: <p>I was wondering when and why references get broken in C#?</p>
  
  <p>The following code example highlights this:</p>
  
  <pre><code>StringBuilder a = null, b = null;
  a = new StringBuilder("a");
  b = a;
  b.Append("b");
  b = null;
  Console.WriteLine(a != null? a.ToString() : "null");
  Console.WriteLine(b != null ? b.ToString() : "null");
  
  //Output: 
      ab
      null
  </code></pre>
  
  <p>Why is it, for this example, that <code>b</code>'s reference to <code>a</code> does not cause <code>a</code> to be <code>null</code> as well?</p>