title: Derived Interface with derived interface member
body: <p>I have 2 base interfaces, IViewBase (which all views will implement) and IPresenterBase (which all presenters will implement):</p>
  
  <pre><code>public interface IViewBase { }
  
  public interface IPresenterBase
  {
      IViewBase View { get; set; }
  }
  </code></pre>
  
  <p>Then i've created a new interface ILogPresenter that derives from IPresenterBase and ILogView deriving from IViewBase:</p>
  
  <pre><code>public interface ILogPresenter : IPresenterBase { }
  
  public interface ILogView : IViewBase{ }
  </code></pre>
  
  <p>When i create a class that implements ILogPresenter, </p>
  
  <pre><code>public class LogPresenter: ILogPresenter
  {
      public ILogView View { get; set; }
  }
  </code></pre>
  
  <p>I get an error:</p>
  
  <p>'LogPresenter' does not implement interface member 'IPresenterBase.View'. 'LogPresenter.View' cannot implement 'IPresenterBase.View' because it does not have the matching return type of 'Views.IViewBase'.</p>
  
  <p>I cannot set the return type of LogPresenter.View to ILogView which derives from IViewBase? I would like implement ILogPresenter with a different IView which derives from IViewBase.</p>