title: Null value for generic class
body: <p>I have a class like this:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  
  namespace WindowsFormsApplication1
  {
      public class MyList&lt;T&gt; : List&lt;T&gt;
      {
          public int SelectedIndex { get; set; }
  
          public T CurrentItem
          {
              get
              {
                  if (this.SelectedIndex &gt; this.Count)
                      return null;
  
                  return this[this.SelectedIndex];
              }
          }
      }
  }
  </code></pre>
  
  <p>I am creating a class that derive from list and create a property for getting the current item.</p>
  
  <p>If <code>SelectedIndex</code> is a wrong value, I am returning <code>null</code> but it has an error</p>
  
  <blockquote>
    <p>Cannot convert null to type parameter 'T' because it could be a
    non-nullable value type. Consider using 'default(T)' instead.</p>
  </blockquote>
  
  <p>I want the return value to be <code>null</code> not <code>default(T)</code>.</p>
  
  <p>what should I do?</p>