再问泛型:根据泛型自动适配子类
//基类
public class A<T> where T : Model.Base.BaseModel
{
public virtual List<T> GetList()
{
//代码省略
}
}
//子类 AUser
public class AUser : A<Model.User>
{
public override List<Model.User> GetList()
{
//代码省略
}
}
//子类 AGroup
public class AGroup : A<Model.Group>
{
}
如上有基类A,子类AUser,AGroup
A<Model.TestUser> bll = new A<Model.TestUser>();
当对A如上创建将泛型指定为Model.TestUser的实例时,能否使其自动适配子类AUser,从而使bll.GetList()调用的是子类AUser的 GetList()方法。
以上是否能实现?
------解决方案--------------------有继承,并且override?List<Model.User>?GetList()
完全可以
其实这样的问题,你自己小测试一下就知道了
------解决方案--------------------把GetList()方法定义成虚函数
然后A<Model.User> bll = new AUser();
bll.GetList()就是调用的AUser中的那个了。。。