ServerType型の汎用BindingListを返すメソッドを継承しようとしています。たとえば、のは、以下の私が持っているとしましょう: 汎用戻り値の異なるメソッドを継承する方法
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<ServerTypeA>
{
public BindingList<ServerTypeA> ToBindingList()
{
BindingList<ServerTypeA> myBindingList = new BindingList<ServerTypeA>();
foreach (ServerTypeA item in this.ToList<ServerTypeA>())
{
_bl.Add(item);
}
return _bl;
}
}
が、私は、各派生サーバ・クラスでそれを繰り返すようにし、それが正しいジェネリック型を使用していなくても、「ToBindingList」方法を行うことができます任意の方法です。
ToBindingList方法は、単にするBindingListにリストに変換されます。これを行うには、リストの簡単な拡張メソッドを書くことができます。それは、Serverクラスまたはあなたのコード内の他のものとは関係ありません。 –
あなたの実装が 'ToBindingList()'実装を繰り返す必要があるように見えません。何か不足していますか? – dasblinkenlight
私はBindingListが必要な他のdeiveクラスを持っています。異なるリポジトリタイプ。だから私はBindingList ToBindingList()のようなことをする必要があります。 –
GhostHunterJim