从零开始自学C#基础的第三十六天——泛型
一,开始学习
泛型:
- 泛型是可适应对多种数据类型执行相同功能的单个编程元素,定义泛型类或方法时,无须为可能需要对其执行该功能的每个数据类型定义单独版本。
- 定义泛型类型时,即使用一个或多个数据类型将其参数化,这样可允许使用代码定制数据类型以满足其要求,代码可以通过泛型元素声明若干个不同的编程元素,每个元素可使用一组不同的数据类型,但是,无论声明的元素使用哪些数据类型,它们执行相同的逻辑。
创建泛型类的过程为:从一个现有的具体类开始,逐一将每个类型更改为类型参数,直至达到通用化和可用性的最佳平衡。
- .NET Framework类库在System.Collections.Generic命名空间中包含几个泛型集合类。
创建泛型类时,需要注意以下事项:
- 将哪些类型通用化为类型参数,一般规则是,能够参数化的类型越多,代码就会变得越灵活,重用性越好;
- 是否将泛型行为分解为基类和子类,由于泛型类可以作为基类使用,此处适用的设计注意事项与非泛型类相同;
- 是否实现一个或多个泛型接口。
- Collections.Generic命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能够提供比非泛型强类型集合更好的类型安全性和性能。
代码都声明T类型来代表各种数据类型,无论实例化过程中具体数据类型是什么,都使用T来代替。
还解决了不同类型的数据冲突问题,实现了如下功能:
无须进行类型转换;
不要求装箱和拆箱;
代码的类型安全,无需在类中控制类型转换,或者为不同的类型编写不同的类;
没有多余代码。
在Stack<>中的“T”是类的类型参数,用于参数的多态处理。
二,小结
1,泛型是可适应对多种数据类型执行相同功能的单个编程元素,定义泛型类或方法时,无须为可能需要对其执行该功能的每个数据类型定义单独版本。
2,Collections.Generic命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能够提供比非泛型强类型集合更好的类型安全性和性能。
相关文章
- Linux服务器硬件信息查询与日常运维命令总结
- Linux服务器带宽跑不满?用ethtool调优网卡参数,性能提升30%
- 如何在 Rocky Linux 中查看网卡流量?跟着小编学习iftop安装和使用
- Linux查看网卡速率_linux查看网卡当前速率
- 五一我要看七天小说!免费开源的轻量化书库talebook搭建流程。
- 我是如何用这3个小工具,助力小姐姐提升100%开发效率的
- html5和css3的常用参考网_基于html5和css3的网页制作
- 超详细的网络抓包神器 tcpdump 使用指南
- Vue 技术栈(全家桶)_vue全栈项目教程
- 学习ES6- 入门Vue(大量源代码及笔记,带你起飞)