【机房收费系统】——泛型的理解

       机房收费系统也已经开始很长时间了,从刚开始的三层到七层,到后来学会使用了SqlHelper,然后又知道了泛型,泛型这个概念早在学习设计模式的时候就已经接触到了,只不过那时只是简单的看了看,并没有真正的去使用这个东西。在设计模式中也偶尔可见泛型的身影,对于List<T>和IList<T>更是陌生。在机房收费系统中又用到了泛型,所以去找了一些资料和之前看过的书,算是为了加深一遍理解吧。


       什么是泛型?


       泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。

       也就是说泛型是具有类型参数的类,泛型集合类可以将类型参数用作它所存储的对象的类型的占位符;类型参数作为其字段的类型及其方法的参数类型出现。泛型方法可以将其类型参数用作其返回值的类型或者其某个形参的类型。


       为什么要使用泛型?


 说到为什么要使用泛型,不得不提的就是集合(ArrayList)


       集合(ArrayList)


       那么什么是ArrayList呢,ArrayList是命名空间System.Collections下的一部分,它是使用大小可按需动态增加的数组实现IList接口。说白了就是一个动态数组。使用ArrayList,可能会出现类型不匹配的错误,也就是说,ArrayList不是类型安全的。


       装箱和拆箱


       用ArrayList存放值类型的数据就意味着都需要将值类型进行装箱和拆箱。

       1、装箱就是把值类型打包到Object引用类型的一个实例中。

       2、拆箱就是指从对象中提取值类型。

       装箱和拆箱过程需要进行大量的计算。对值类型进行装箱时,必须分配并构造一个全新的对象;其次,拆箱所需的强制转换也需要进行大量的计算。总之,装箱拆箱是很耗费资源和时间的。


       使用泛型的优点


       泛型(List)可以说是对于ArrayList的改进,通过和ArrayList比较,主要优点表现为以下两点:

       1、不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。

       2、通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设,所以泛型提高了程序的类型安全。


       总结:


       以上的总结也只是泛型里面最基本的一些东西,写这篇博客也是为了让自己对于泛型的理解更深一步,要想更深的理解,还是要应用于实践中,俗话说的好:实践出真知嘛!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值