title: Why is the default value of the string type null instead of an empty string?
body: <p>It's quite annoying to test all my strings for <code>null</code> before I can safely apply methods like <code>ToUpper()</code>, <code>StartWith()</code> etc...</p>
  
  <p>If the default value of <code>string</code> were the empty string, I would not have to test, and I would feel it to be more consistent with the other value types like <code>int</code> or <code>double</code> for example.
  Additionally <code>Nullable&lt;String&gt;</code> would make sense.</p>
  
  <p>So why did the designers of C# choose to use <code>null</code> as the default value of strings?</p>
  
  <p>Note: This relates to <a href="https://stackoverflow.com/questions/265875/default-string-initialization-null-or-empty">this question</a>, but is more focused on the why instead of what to do with it.</p>