title: How to delegate correct Action<Interface>?
body: <p>I'm a beginner with C# and can't find any answer for this :</p>
  
  <p>Im trying to delegate Actions with some interface parameter , but push through functions with objects that extend this interface (or class)</p>
  
  <pre><code>// some class extending interface
  public class IntEvent : IFace{}
  public class MoveEvent : IFace{}
  
  // function i like to use to verify Action
  static void setAction(Action&lt;IFace&gt; evt) {
      // evt ...
  }
  // function to delegate as Action
  static void evtCheck(IntEvent evt) {
      // some func
  }
  static void evtMove(MoveEvent evt) {
      // some func
  }
  // class {
  //  call method inside class and delegate this function :
  setAction(evtCheck);
  setAction(evtMove);
  </code></pre>
  
  <p>I'm receiving an error that "<code>evtCheck(IntEvent)</code> cannot be converted to <code>Action&lt;IFace&gt;</code>" , even if <code>IntEvent</code> extends the <code>IFace</code> interface .</p>
  
  <p>How should I solve this ? Maybe I have to use Func or Delegate ?</p>