title: What is the point of using class as Derivation constraint - C# Generics
body: <pre><code>public void AddEmployee&lt;T&gt; (T employee) where T : Employee
  {
  
    //some code here
  
  
   }
  </code></pre>
  
  <p>But if I write it like this</p>
  
  <pre><code>public void AddEmployee (Employee Employee)
  {
   // Code here
  }
  </code></pre>
  
  <p>Similarly,</p>
  
  <pre><code>public class GenericList&lt;T&gt; where T : Employee
  </code></pre>
  
  <p>and</p>
  
  <pre><code>public class GenericList&lt;Employee&gt; 
  </code></pre>
  
  <p>I do not see any difference between two. I understand that when there is interface as derivation constraint like </p>
  
  <pre><code>public class GenericList&lt;T&gt; where T : IComparable, IConvertible 
  </code></pre>
  
  <p>But if subclass used (as in employee above), that does not make sense to me. Am I missing something here? Please explain</p>