泛型的概念
泛型是通过参数化类型来实现在同一份代码上操作多种数据类型的技术
利用“参数化类型”讲类型抽象化 从而实现灵活的复用
泛型核心
1 减少装箱和拆箱 提高运行效率
List<int> list = new List<int>();
2 类型安全
List<int>list = new List<int>();
3 代码重用
泛型的优点
1. 泛型增强了代码性的可读性
2.泛型有助于实现代码的重用 保护类型的安全以及提高性能
3 我们可以创建泛型集合类
4. 泛型实现了类型和方法的参数化
5. 我们还可以对泛型类进行约束以访问特定数据类型的方法
6.关于泛型数据类型中使用的额类型的信息可以在裕兴时通过使用反射获取
泛型的约束
T:struct 类型参数必须是值类型 可以指定除Nullable 意外的任何值类型
T:class 类型参数化必须是引用类型 包括任何类 接口 委托或数组类型
T:new()类型参数必须具有无参数的公共构造函数 当与其他约束一起使用时,new{}约束必须最后指定
T:<基类名> 类型参数必须是指定的基类或派生自指定的基类子类
T:<接口名称> 类型参数必须是指定的接口或实现指定的接口 可以指定多个接口约束 约束接口也可以是泛型的
泛型缓存
类中的静态类型 无论被使用多少次内存中都只存在一个 静态构造函数只会执行一次
在泛型类中 T类型不同,每个不同的T类型 都会产生一个不同的副本 所以会产生不同的静态属性 静态构造函数
(注:1.泛型缓存比字典缓存效率高 2.泛型缓存不能主动释放)