title: Why are reference types not initialized to null?
body: <p>Check this code..</p>
  
  <pre><code>    string str;
  
      if (str.Contains("something.."))
      {
      }
  </code></pre>
  
  <p>Compiler throws this error for this code</p>
  
  <p><strong>Use of unassigned local variable 'str'</strong></p>
  
  <blockquote>
    <p><strong>Why does a reference type is not initialized to null ?</strong></p>
  </blockquote>
  
  <p>Just want to know out of curiosity.</p>
  
  <p>I'd also want to know what happens for code below. how does this assignment work ?</p>
  
  <pre><code>    string str = null;
  </code></pre>