title: How to Inherit a method with different generic return types
body: <p>I'm trying to inherit a method that returns a Generic BindingList of type ServerType.  For example, let's say I have the following:</p>
  
  <pre><code>public interface IServer 
  {
  
      string IpAddress { get; set; }
      string Name { get; set; }
      string HostName { get; set; }
      string OsVersion { get; set; }
  
  }
  
  public class BaseServer : IServer
  {
      private string _IpAddress;
      private string _Name;
      private string _HostName;
      private string _OsVersion;
  
      public string IpAddress
      {
          get { return _IpAddress; }
          set { _IpAddress = value; }
      }
  
      public string Name
      {
          get { return _Name; }
          set { _Name = value; }
      }
  
      public string HostName
      {
          get { return _HostName; }
          set { _HostName = value; }
      }
  
      public string OsVersion
      {
          get { return _OsVersion; }
          set { _OsVersion = value; }
      }
  }
  
  public class ServerTypeA : BaseServer { }
  public class ServerTypeB : BaseServer { }
  public class ServerTypeC : BaseServer { }
  
  public class ServerTypeList : List&lt;ServerTypeA&gt;
  { 
  
      public BindingList&lt;ServerTypeA&gt; ToBindingList()
      {
          BindingList&lt;ServerTypeA&gt; myBindingList = new BindingList&lt;ServerTypeA&gt;();
  
          foreach (ServerTypeA item in this.ToList&lt;ServerTypeA&gt;())
          {
              _bl.Add(item);
          }
  
          return _bl;
  
      }   
  }
  </code></pre>
  
  <p>Is there any way I can do the "ToBindingList" method without having to repeat it in each derived server class and have it use the correct generic type.</p>