C

雅轩聊科技 2024-08-19 17:56:47

哈喽,你好啊,我是雷工!

关于泛型在前面学习记录过

《》、《》;

其中泛型集合 List<T>、Dictionary<k,v>所在的命名空间为:System.Collection.Generic;

01 非泛型集合

与泛型集合对应的是被淘汰了的非泛型集合:

非泛型ArryList,Hastable 所在命名空间:System.Collections;

①ArryList

非泛型集合ArryList里可以添加任意类型,虽然添加方便,但是对于数据本身来讲,非常不完全,会导致开发中很多时候不可控,另外还存在拆装箱问题。

② 啥是拆装箱

装箱:将值类型的元素,放到集合中会被转换成object类型,这个过程叫做装箱。

拆箱:将一个集合中的元素取出来,但是这个元素本质是值类型,所以,我们必须强制类型转换。

拆装箱的缺点:当存储大量数据时,拆装箱会影响程序性能。

由于不安全和影响性能两个问题导致非泛型集合被淘汰。

02 泛型集合

①泛型集合出现的原因:

开发 中不希望在一个容器中添加不同类型的数据,但是又希望这个容器能够根据我们的需求,随时决定能够添加何种数据。

②泛型概念

泛型是一种程序特性,当定义的时候并不对类型做规定,但是当使用的时候,必须明确规定类型,且不能改变。

03、泛型出现的场合

①泛型集合;

②泛型方法;

③泛型类;

④泛型委托;

04 泛型方法

泛型方法就是把一个方法的返回值类型,方法参数定义成泛型类型。

常见的泛型类型表示方法:T、T1、T2、……

05 default

泛型中default关键字的使用,主要用于直接的赋值;

示例:

public MyGenericClass<T1,T2>

{

private T1 data1;

private T2 data2;

public MyGenericClass()

{

写法1:

data1=new T1(); 【写法错误】

原因:

因为T1类型不能确定是引用类型,所以不能new;

写法2:

data1=null;【写法错误】

原因:

因为很多时候值类型不可以为null

写法3:

data1=default(T1);【写法正确】

data2=default(T2);

}

}

0 阅读:0

雅轩聊科技

简介:感谢大家的关注