码迷,mamicode.com
首页 > Windows程序 > 详细

C#的装箱和拆箱

时间:2018-08-13 00:43:35      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:类型转换   图片   引用类型   gif   pre   技术   示例   .com   成功   

2018-08-12  23:03:05

装箱是将值类型转换为 object 类型或由此值类型实现的任何接口类型的过程。 当 CLR 对值类型进行装箱时,会将该值包装到 System.Object 内部,再将后者存储在托管堆上。 取消装箱将从对象中提取值类型。 装箱是隐式的;取消装箱是显式的。 装箱和取消装箱的概念是类型系统 C# 统一视图的基础,其中任一类型的值都被视为一个对象。

图示:

技术分享图片

 

理解:装箱(boxing)将值类型赋值给引用类型。从栈(stack)到堆(heap)。

      拆箱(unboxing) 将引用类型还给值类型变量。从堆到栈。虽然不一定成功。

 

示例:boxing

1 int i = 123;
2 // The following line boxes i.
3 object o = i;

示例:unboxing

1 o = 123;
2 i = (int)o;  // unboxing

 

C#的装箱和拆箱

标签:类型转换   图片   引用类型   gif   pre   技术   示例   .com   成功   

原文地址:https://www.cnblogs.com/newdavy/p/9465419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!