• C#装箱和拆箱


    1、装箱是将值类型转换为引用类型(或者转换为此值类型所实现的任何接口类型)的隐式转换,当 CLR 对值类型进行装箱时,会将该值包装到 System.Object 内部,再将后者存储在托管上。

    1             int i = 123;
    2             //值类型变成引用类型,装箱,隐式的
    3             object obj = i;

    2、拆箱是将引用类型转换为值类型(或接口类型到实现该接口类型的值类型)的显示转换 。

    1             int i = 123;
    2             //值类型变成引用类型,装箱,隐式的
    3             object obj = i;
    4             //将从引用类型中提取值类型,拆箱,显式的
    5             int j = (int)obj;

     拆箱的操作包括:

        检查对象实例,以确保它是给定值类型的装箱值。

        将该值从实例复制到值类型变量中。

    3、 .NET中,数据类型划分为值类型和引用(不等同于C++的指针)类型,与此对应,内存分配被分成了两种方式,一为栈,二为堆,注意:是托管堆。

      值类型只会在栈中分配。引用类型分配内存与托管堆。托管堆对应于垃圾回收。

  • 相关阅读:
    miniui mini-combobox的使用
    xsd文件记录
    Hibernate 一次查询分多次返回 避免内存溢出
    卡口扩展信息
    删除 maven仓库,更新失败的jar包命令
    杀windows进程
    layer 遮罩层等待
    math() 对象
    JavaScript 字符串方法
    JavaScript 数组遍历方法;
  • 原文地址:https://www.cnblogs.com/WebApp-DotNet/p/6209984.html
Copyright © 2020-2023  润新知