C#装箱和拆箱

一,装箱

装箱是指将值类型转化为引用类型。

代码如下:

装箱的内部过程

  • 当值类型需要被装箱为引用类型时,CLR(Common Language Runtime)会为值类型分配内存,在堆上创建一个新的对象。
  • 值类型的数据会被复制到这个新创建的对象中。
  • 最终,装箱操作会返回一个指向堆上新对象的引用。

二,拆箱

装箱是指将引用类型转化为值类型。

代码如下:

拆箱的内部过程

  • 当需要从引用类型中提取值类型数据时进行拆箱操作。
  • CLR会检查引用类型的实际数据类型是否与拆箱的目标值类型相匹配,如果不匹配会引发无效的类型转换异常。
  • 拆箱操作会从堆上的对象中提取值类型的数据,并将其转换为目标值类型。
相关推荐
a努力。17 小时前
网易Java面试被问:偏向锁在什么场景下反而降低性能?如何关闭?
java·开发语言·后端·面试·架构·c#
专注VB编程开发20年18 小时前
c#语法和java相差多少
java·开发语言·microsoft·c#
SmoothSailingT18 小时前
C#——Lazy<T>懒加载机制
开发语言·单例模式·c#·懒加载
czhc114007566319 小时前
c# 1216
windows·microsoft·c#
幸存者letp19 小时前
为什么 max(words, key=len) 中需要传 key=len
服务器·开发语言·c#
SmoothSailingT20 小时前
C#——Interface(接口)
开发语言·c#·接口
Henry_Wu00120 小时前
go与c# 及nats和rabbitmq交互
golang·c#·rabbitmq·grpc·nats
烛阴20 小时前
深入 C# 字符串世界:基础语法、常用方法与高阶实战
前端·c#
用户44884667106021 小时前
.NET进阶——深入理解线程(2)Thread入门到精通
c#·.net
民乐团扒谱机1 天前
【微实验】基于Python实现的实时键盘鼠标触控板拾取检测(VS2019,附完整代码)
python·c#·计算机外设