title: C# Interface using a child type class
body: <p>Let's say I create this interface :</p>
  <pre><code>interface Equipable
  {
      public bool Equip(Equipment equipment);
  }
  </code></pre>
  <p>Let's just assume our <code>Equipment</code> class is empty for now:</p>
  <pre><code>class Equipment
  {
  
  }
  </code></pre>
  <p>I create a derived class from <code>Equipment</code> (let's keep it simple):</p>
  <pre><code>class Trinkets : Equipment
  {
      ...
      public Trinkets(...)
      {
          ...
      }
  }
  </code></pre>
  <p>Then I want a <code>Trinket</code> class that implements <code>Equipable</code> and that uses its method:</p>
  <pre><code>class Trinket : Item, Equipable
  {
      bool Equipable.Equip(Trinkets trinkets)
      {
          return true;
      }
  }
  </code></pre>
  <p>But it seems I can't do this (CS0539), I can't use <code>Trinkets</code> class (which however is <code>Equipment</code> derived class) as a method parameter of my interface.</p>
  <p>This didn't work for me and seems far-fetched: <a href="https://stackoverflow.com/questions/2588524/implementation-of-interface-when-using-child-class-of-a-parent-class-in-method-o">Implementation of interface when using child class of a parent class in method of interface</a>.
  And it also seems that the above solution does not allow you to use other classes than the base class declared in the interface header.</p>
  <p>So my question is simple, is there a way to do what I'm trying to do?
  Is it bad practice? If it is, what should I do to overcome this problem?</p>