title: C# error with generic interface and class
body: <p>I have clases and interface like this:</p>
  <pre><code>public interface IPerson
  {
      public string Name { get; set; }
  }
  
  public class Person : IPerson
  {
      public string Name { get; set }
      public int Age { get; set; }
  }
  
  public interface IMove&lt;T&gt;
  {
      void ChangeLocation(T obj);
  }
  
  public class Move&lt;T&gt; : IMove&lt;T&gt;
  {
      public void ChangeLocation(T obj)
      {
          throw new NotImplementedException();
      }
  }
  </code></pre>
  <p>And I can do stuff like this:</p>
  <pre><code>        IPerson p = new Person();
          IMove&lt;Person&gt; t1 = new Move&lt;Person&gt;();
          IMove&lt;IPerson&gt; t2 = new Move&lt;IPerson&gt;();
  </code></pre>
  <p>But when I'm trying to do:</p>
  <pre><code>IMove&lt;IPerson&gt; t3 = new Move&lt;Person&gt;();
  </code></pre>
  <p>compiler is showing error:</p>
  <p><code>Cannot implicity convert type Move&lt;Person&gt; to IMove&lt;IPerson&gt;</code></p>
  <p>Can you please explain why so?</p>