读书人

再问泛型:依据泛型自动适配子类

发布时间: 2013-12-17 12:06:34 作者: rapoo

再问泛型:根据泛型自动适配子类


//基类
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中的那个了。。。

读书人网 >C#

热点推荐