C#的装箱和拆箱

2021-03-23 06:26

阅读:459

标签:类型转换   图片   引用类型   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


评论


亲,登录后才可以留言!