欢迎光临散文网 会员登陆 & 注册

C#知识梳理——泛型(1)

2023-08-07 21:08 作者:羞涩男孩小小明  | 我要投稿

1.     什么是泛型 或者说微软定义好的泛型

2.     自定义泛型

泛型要生成一个包含当前占位符字段的构造函数--->这一点在泛型的约束中也会见到,提前透露一下,有构造的类,可以简单地理解为是可以被new()的类 即可以实例化,这是泛型约束的一种约束条件
泛型的调用逻辑

3.     泛型方法

理解泛型方法,首先要明确的一点,泛型方法也是一种方法,它拥有方法的特性。但是从直观的感受来看,它与普通的方法又是不一样的,泛型方法的定义形式不同于普通的方法的定义,最显著的特点就是<>。

4.   泛型的优点和原理

泛型的优点其实很明确,那就是“通用”二字。一般能做到“通用“的东西都可以说相当灵活。

对于泛型来讲,在编译器中因为没有确定类型,所以用占位符占了一个位置。
CLR调用中,给了具体的类型。

ILSpy是一个拓展插件,用于查看C#代码的编译内容 具体的使用方法是安装好后右键,会提示有此栏目

5.     泛型约束

泛型约束就是约束泛型传入参数的类型 常见的有几类,包括

        //[1] where T:new()//约束--表示T类型只接受带一个无参数的构造函数 (人话就是可以用new T()--比如普通类就默认带一个无参数的构造 像接口就没有构造函数)--->//Show(IDoctor);-->❌

        //[2] strcut: where T:strcut  -->只能传值类型   where T:int -->  值类型约束例子就是只能传int类型的过来

        //[3] class 引用类型约束 where T:class  -->只能传引用类型

        //[4] 自定义类型约束===>这个最简单,只要把自己写的类型放上去即可

        //值类型:结构体、枚举、int、。。。  引用类型:类、接口、委托、object、字符串

        //注意 where T:struct,class 这样的定义就冲突了,因为没有一个类型既使值类型又是引用类型



此篇内容如有纰漏,请留言。

C#知识梳理——泛型(1)的评论 (共 条)

分享到微博请遵守国家法律