Cannot assign Action<TDerivedThing> to Action<IThing>
<p>I have the following class definition:</p>

<pre><code>public class Registry
{
     private List&lt;Action&lt;IThing&gt;&gt; _thingActions = new List&lt;Action&lt;IThing&gt;&gt;();

     public Register&lt;TDerivedThing&gt;(Action&lt;TDerivedThing&gt; thingAction)
          where TDerivedThing : IThing
     {
        // this line causes compilation issue
        _thingActions.Add(thingAction);
     }     
}
</code></pre>

<p>Why does this complain that it cannot assign <code>Action&lt;TDerivedThing&gt;</code> to <code>Action&lt;IThing&gt;</code>, and how should I go about resolving this?</p>
