- 最后登录
- 2016-8-29
- 注册时间
- 2012-8-25
- 阅读权限
- 90
- 积分
- 23585
- 纳金币
- 20645
- 精华
- 62
|
为什么要思考泛型设为值类型和引用类型的区别?
有以下两点原因:
1.值类型和引用类型在相互转换时,会进行装箱和拆箱操作,会损耗效率。
2.直接使用泛型进行大小等于比较时,由于值类型和引用类型不能比较,所以不能直接判定;
所以鉴于以上两点,做了深入的思考和学习。
什么是装箱和拆箱?
装箱拆箱只是在值类型与引用类型相互转换时才会发生。
值类型 转 引用类型叫 装箱。
引用类型 转 值类型叫 拆箱。
两种类型的内存处理机制是不同的,因此不能直接相互使用。
使用泛型可以在一定程度上避免装箱和拆箱引起的效率消耗
泛型能保障类型安全型,要么是值类型,要么是引用类型,不会出现类型混乱情况
泛型在使用一些共有方法时,多态特性会自动区分值类型和引用类型进行不同的处理
泛型比较时不能直接使用==、>、<等运算符,除非重载。
== 可使用Equals替代
> 和 < 只有实现IComparable接口的CompareTo方法 或 自己通过其它方式重写比较方法(有更好的方法大家一定要提出来)
|
|