码迷,mamicode.com
首页 > 其他好文 > 详细

泛型的学习

时间:2018-12-02 19:15:32      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:2.0   nbsp   重要   必须   泛型方法   拆箱   object   遇到   alt   

1.什么是泛型

泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个非常重要的新功能。

我们在编程程序时,经常会遇到功能非常相似的模块,只是它们处理的数据不一样。但我们没有办法,只能分别写多个方法来处理不同的数据类型。这个时候,那么问题来了,有没有一种办法,用同一个方法来处理传入不同种类型参数的办法呢?泛型的出现就是专门来解决这个问题的。

 

2.初步了解泛型

为什么要使用泛型呢?

技术分享图片

上面定义了一个ShowType的类,里面定义了三个方法,分别输出参数的值和类型,这三个方法的方法体是差不多的,我们可不可以改为一个方法来实现呢?

.net 1.0时代

技术分享图片

在上图中我们将方法的参数改为Object类型,来将三个方法整合,但是这样会对性能造成一定的影响(会多进行一次装箱拆箱的操作),看看使用泛型是怎么解决这个问题的

.net 2.0时代

技术分享图片

这是一个泛型方法,它有两个参数,一个是类型参数,一个值参数。泛型方法声明的时候没有指定参数类型,而是推迟到使用方法的时候才指定参数类型(延迟思想)。类型可以定义多个,在使用的时候类型参数可以不传,IDE自动推算。

 技术分享图片

在这种情况下使用泛型方法来实现,就减少了装箱拆箱。

 

3.泛型的用途(泛型方法、泛型类、泛型接口、泛型委托)

泛型方法在上面已经记录了。

泛型类:

 技术分享图片

泛型接口:

技术分享图片

泛型委托:

技术分享图片

技术分享图片

 

 

 

4.泛型约束

技术分享图片

 在泛型约束参数必须为值类型时,有一个方法Default(),输出当前值类型的默认值。而且泛型约束是可以叠加的。

 

此篇是自己学习泛型时所做的笔记,放在博客上留作记录。如果有前辈发现错误,还望指点。谢谢!

 

泛型的学习

标签:2.0   nbsp   重要   必须   泛型方法   拆箱   object   遇到   alt   

原文地址:https://www.cnblogs.com/xiewei123/p/10054437.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!