当前位置:   article > 正文

C#面:简述装箱和拆箱

C#面:简述装箱和拆箱

在C#中,装箱(boxing)和拆箱(unboxing)是用于在值类型和引用类型之间进行转换的过程。

装箱:(Boxing)

是将值类型转换为引用类型的过程。
将一个值类型赋值给一个对象类型时,编译器会自动将值类型包装在一个堆分配的对象中。这个过程会创建一个新的引用类型对象,并将值类型的值复制到该对象中。装箱操作会导致额外的内存开销和性能损失。

示例:

  1. int i = 10;
  2. object obj = i; // 装箱操作

拆箱:(Unboxing)

是将引用类型转换为值类型的过程。
当我们从一个装箱后的对象中取出值类型时,编译器会自动将对象转换回原始的值类型。这个过程会从堆中提取值类型的值,并将其存储在栈上。拆箱操作也会导致一定的性能损失。

示例:

  1. object obj = 10;
  2. int i = (int)obj; // 拆箱操作
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/111810
推荐阅读
相关标签
  

闽ICP备14008679号