title: Using nullable types in C#
body: <p>I'm just interested in people's opinions. When using nullable types in C# what is the best practice way to test for null:</p>
  
  <pre><code>bool isNull = (i == null);
  </code></pre>
  
  <p>or</p>
  
  <pre><code>bool isNull = !i.HasValue;
  </code></pre>
  
  <p>Also when assigning to a non-null type is this:</p>
  
  <pre><code>long? i = 1;
  long j = (long)i;
  </code></pre>
  
  <p>better than:</p>
  
  <pre><code>long? i = 1;
  long j = i.Value;
  </code></pre>