注意: .NET Pad 代码在这里。
我有一个接受泛型类型参数的基类。
它将构成其基础的每个类都有一个相应的集合类,它仅包含以下内容:
public class List_SomeType : List<SomeTime> {
public List_SomeType() {
}
}
就是这样:它只是一个List<T>容器。
但是,它在我的基类中造成了问题,因为其中一种方法是返回此集合。
我尝试创建以下Get方法,这对我来说非常有意义:
public TList Get() {
var list = new TList();
using (var cmd = new SqlCommand(SP_GET, m_openConn)) {
cmd.CommandType = CommandType.StoredProcedure;
using (var r = cmd.ExecuteReader()) {
while (r.Read()) {
list.Add(FillDataRecord(r));
}
}
cmd.Connection.Close();
}
return list;
}
public class TList : List<T> {
public TList() { }
}
在我的派生类中,我打算这样调用这个基类:
public class BuyerDB : DAL_Base<Buyer> {
private static BuyerDB one;
static BuyerDB() {
one = new BuyerDB();
}
public static BuyerList GetBuyerList() {
return (BuyerList)one.Get(); // <= ERROR HERE!
}
}
这里的错误状态:
无法将类型“DAL_Base.TList”转换为“BuyerList”
如何转换回我的泛型类型的集合?
编辑:
马克想知道是什么BuyerList
。
我认为从我写的内容中可以理解。
显然不是,所以这里是:
public class BuyerList : List<Buyer> { }
就这样!