在讲泛型之前,先说说,数组,集合各自的优缺点(都是用来存储数据的)
数组
int[] nums = new int[2];
double[] nums2 = new double[] {
1, 2, 3 };
string[] str = {
"张三", "李四" };
缺点
1.长度确定,一旦声明就不能更改
2.代码不能够重用,存入整数就必须定义int
数组,存入小数必须定义double
数组,存入字符串必须定义string
数组
使用场景:如果说只是简单存储相同类型的数据,且不易改变可以用数组
数组集合
ArrayList arrayList = new ArrayList();
arrayList.Add("1");
arrayList.Add(123);
解决了代码重用的问题,里面可以放任何类型的数据
缺点:
1.类型不安全,就是什么类型都可以往里面放,会造成数据的混乱
2.效率低下,在值类型进行转换的时候,频繁的使用装拆箱操作(频繁的在堆中开辟空间)
使用场景:不建议大家使用这个,目前已经很少用它
泛型
带有<>
符号的类型就是泛型
优点:
1.代码重用(<T>
可以代表任何类型)
2.类型安全(只放一种类型的数据)
3.高效率(不会拆装箱)
分类:定义角度分 1.预定义(List<T>,DIctionary<TKey,TValue>
),2.自定义(泛型方法,泛型类)
1.预定义:指明类型
List<int> nums = new List<int>();
nums.Add(12);
2.自定义
泛型方法:
static void Main