title: Generic method type and method parameter does not match
body: <p>I just stumbled over that and I can't really explain that. Say I have that code:</p>
  
  <pre><code>public interface IFeature  {  }
  
  public class FeatureA : IFeature { }
  
  class Program
  {
    static void Main(string[] args)
    {
      var feature = new FeatureA();
      Load(feature);
    }
  
    private static void Load(IFeature featureDefinition)
    {
      Activate(featureDefinition);
    }
  
    private static void Activate&lt;TFeature&gt;(TFeature featureDefinition) where TFeature : IFeature
    {
      var featureType = typeof(TFeature);
      var sameType = featureType == featureDefinition.GetType();
      // sameType == false
    }
  }
  </code></pre>
  
  <p>Now <code>featureType</code> is always of type <code>IFeature</code> and not of the type of the parameter <code>featureDefinition</code>. Can someone explain why?</p>
  
  <p>I expected </p>
  
  <pre><code>featureType == featureDefinition.GetType()
  </code></pre>
  
  <p>to be true...</p>
  
  <p><strong>edit:</strong></p>
  
  <p>So above is a complete working example of the code.</p>
  
  <p>Now it's quite clear to me: The parameter is non generic, thus always of type <code>IFeature</code>. I guess there is a reason for a small working example :-P</p>
  
  <p>Thanks for the help guys!</p>