美文网首页
装箱拆箱

装箱拆箱

作者: 加油小杜 | 来源:发表于2018-07-18 17:05 被阅读22次

    装箱是值类型转成object引用类型,拆箱是已被装箱的引用类型转成原来的值类型。
    装箱和取消装箱使值类型能够被视为对象。
    对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中。
    这使得值类型可以存储于【垃圾回收】堆中。
    取消装箱将从对象中提取值类型。
    装箱是值类型到object类型或到此值类型所实现的任何接口类型的隐式转换。
    对值类型装箱会在堆中分配一个对象实例,并将该值复制到新的对象中。
    取消装箱是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。
    取消装箱操作包括:
    检查对象实例,确保它是给定值类型的一个装箱值。
    将该值从实例复制到值类型变量中。
    要在运行时成功取消装箱值类型,
    被取消装箱的项必须是对一个对象的引用,
    该对象是先前通过装箱该值类型的实例创建的。
    尝试对 null 或对不兼容值类型的引用进行取消装箱操作,将导致 InvalidCastException。
    装箱和拆箱是为了编程模式的简单,任何对象都应当可以赋给Object,
    对于引用类型赋给Object没问题,都是引用类型,只是一个引用的赋值,
    但是值类型赋给Object就有问题了,因为值类型没有引用,
    为了造出一个引用,也就有了装箱。

    相关文章

      网友评论

          本文标题:装箱拆箱

          本文链接:https://www.haomeiwen.com/subject/lrqapftx.html