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

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

  • 相关阅读:
    选择排序
    冒泡排序
    java多线程
    Java中的内存泄露的几种可能
    "==" 与 “equals”
    保证service不被杀死的方法
    反射、注解、依赖
    引导页
    适配:px与dp转换
    四 主要的几种 Web 服务器
  • 原文地址:https://www.cnblogs.com/WebApp-DotNet/p/6209984.html
Copyright © 2011-2022 走看看