泛型约束简单理解就是使用泛型时允许传入什么样的类型,例如:约束为class但是你传入了struct这肯定是不允许的。
首先贴出一段代码
public class BusinessBaseBLL<T, S> : BaseBLL<T, S> where T : new() where S : BusinessDAL<T>, new()
乍一看,这是个什么东西这么长,别着急我们逐步了解分析一下
- BusinessBaseBLL<T, S> 这个类有两个泛型分别是T和S
- BaseBLL<T, S> 这个是基类
- where T : new() 表示T必须是一个带有无参构造的类
- where S : BusinessDAL<T>, new() 有两个约束类型,S是BusinessDAL<T>基类并具有无参数构造
参考MSDN where 泛型类型约束
以上是个人的理解,如果有理解错误,请求大神批评指出,别误导他人!谢谢