title: Why shouldn't I always use nullable types in C#
body: <p>I've been searching for some good guidance on this since the concept was introduced in .net 2.0.</p>
  
  <p>Why would I ever want to use non-nullable data types in c#?  (A better question is why wouldn't I choose nullable types by default, and only use non-nullable types when that explicitly makes sense.)</p>
  
  <p>Is there a 'significant' performance hit to choosing a nullable data type over its non-nullable peer?</p>
  
  <p>I much prefer to check my values against null instead of Guid.empty, string.empty, DateTime.MinValue,&lt;= 0, etc, and to work with nullable types in general.  And the only reason I don't choose nullable types more often is the itchy feeling in the back of my head that makes me feel like it's more than backwards compatibility that forces that extra '?' character to explicitly allow a null value.</p>
  
  <p>Is there anybody out there that always (most always) chooses nullable types rather than non-nullable types?</p>
  
  <p>Thanks for your time,</p>