C#泛型简介
在前面已经介绍了类和方法的定义,那么泛型究竟有什么作用呢?在前面《C#集合》一节中介绍了集合,集合中的项允许是 object 型的值,因此可以存放任意类型的值。
例如,在 ArrayList 中以 double 类型存入学生考试成绩,但存入值时并没有做验证,存入了其他数据类型的值,代码如下。
为了避免类似的情况产生,将集合中元素的类型都指定为 double 类型,不能在集合中输入其他类型的值,这种设置方式即为泛型的一种应用。
例如,在 ArrayList 中以 double 类型存入学生考试成绩,但存入值时并没有做验证,存入了其他数据类型的值,代码如下。
ArrayList arrayList=new ArrayList(); arrayList.Add(100); arrayList.Add("abc"); arrayList.Add(85.5);在输出集合中的元素时,如果使用 double 类型来遍历集合中的元素,代码如下。
foreach (int d in arrayList) { Console.WriteLine(d); }执行上面的代码,由于在集合中存放的并不全是 double 类型的值,因此会出现
System.InvalidCastException
异常,即指定的转换无效。为了避免类似的情况产生,将集合中元素的类型都指定为 double 类型,不能在集合中输入其他类型的值,这种设置方式即为泛型的一种应用。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算
优秀文章
- C语言的演变过程
- C++强制类型转换运算符(static_cast、reinterpret_cast、const_cast和dynamic_cast)
- True Speech声音解码器下载
- Linux Shell trap命令捕获信号实例演示
- Qt编程涉及的术语和名词
- spring-boot-starter-actuator与应用监控
- JSP Request.getHeaders()方法:返回指定名字的request header的所有值
- Hibernate distinct方法:设置查询结果的唯一性
- Hibernate cache.provider_class属性:设置二级缓存实现类的全名
- Django Form表单实现自定义字段