title: Why can I check DateTime for null, even though it is a value type?
body: <p>This compiles without error or warning, how is this possible?</p>
  
  <pre><code>if (DateTime.Now == null) { }
  </code></pre>
  
  <p><em>EDIT:</em></p>
  
  <p>It's getting even better:</p>
  
  <p>If I do the same with <code>Decimal</code>, <code>int</code> or a user defined <code>struct</code>, I get a compiler error.</p>
  
  <p>What is the difference?</p>