public class MasterDao<T, S, BT, BS> : BaseDao<T>, IMasterDao<T, S>
        where T : class, IMasterEntity<BT, BS>, BT
        where S : class, IDetailEntity<BT, BS>, BS
        where BT : class, IMasterEntity<BT, BS>
        where BS : class, IDetailEntity<BT, BS>
{
......
}
上面泛型类中,MasterDao<T, S, BT, BS>这样允许吗?他适用于啥场合下

解决方案 »

  1.   

    允许,这是泛型约束你可以看看下面一篇文章 http://topic.csdn.net/u/20091109/14/485d1246-590c-438b-9ef4-f354a18ffd6b.html
      

  2.   

    定义了你泛型参数之间的关系,和泛型的父类比如T,在你的类中,你的T的实例就可以访问IMasterEntity接口上的方法
      

  3.   

    泛型约束比如T,只能传入继承了IMasterEntity<BT, BS>和BT 的类型