zoukankan      html  css  js  c++  java
  • 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++的指针)类型,与此对应,内存分配被分成了两种方式,一为栈,二为堆,注意:是托管堆。

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

  • 相关阅读:
    今年暑假不AC
    Java类的生命周期
    Java反射机制
    Java环境变量的配置及使用
    javaIO流(一)
    ftp服务器测试
    linux下svn使用及查看杀掉进程
    网络配置学习
    网络配置指令
    dos攻击与防御
  • 原文地址:https://www.cnblogs.com/WebApp-DotNet/p/6209984.html
Copyright © 2011-2022 走看看