Null value for generic class
<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>