纳金网

标题: 对泛型设为值类型和引用类型的理解 [打印本页]

作者: 王者再临    时间: 2014-11-29 04:46
标题: 对泛型设为值类型和引用类型的理解

        为什么要思考泛型设为值类型和引用类型的区别?
        有以下两点原因:
        1.值类型和引用类型在相互转换时,会进行装箱和拆箱操作,会损耗效率。
        2.直接使用泛型进行大小等于比较时,由于值类型和引用类型不能比较,所以不能直接判定;
        所以鉴于以上两点,做了深入的思考和学习。

        什么是装箱和拆箱?
        装箱拆箱只是在值类型与引用类型相互转换时才会发生。
        值类型 转 引用类型叫 装箱。
        引用类型 转 值类型叫 拆箱。
        两种类型的内存处理机制是不同的,因此不能直接相互使用。

        使用泛型可以在一定程度上避免装箱和拆箱引起的效率消耗
        泛型能保障类型安全型,要么是值类型,要么是引用类型,不会出现类型混乱情况
        泛型在使用一些共有方法时,多态特性会自动区分值类型和引用类型进行不同的处理


        泛型比较时不能直接使用==、>、<等运算符,除非重载。
        == 可使用Equals替代
        > 和 < 只有实现IComparable接口的CompareTo方法 或 自己通过其它方式重写比较方法(有更好的方法大家一定要提出来)


作者: hyui    时间: 2014-11-29 05:27
good interesting stuff !




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5