title: how are nullable types implemented under the hood in .net?
body: <p>In our own Jon Skeet's <a href="http://www.manning.com/skeet/" rel="noreferrer">C# in depth</a>, he discusses the 3 ways to simulate a 'null' for value types:</p>
  
  <ul>
  <li>Magic value (e.g. earliest possible DateTime is taken to be 'null')</li>
  <li>Reference type wrapper</li>
  <li>boolean flag </li>
  </ul>
  
  <p>It is mentioned that nullable types use the third method. How exactly do nullable types work under the hood?</p>