C#装箱和拆箱

一,装箱

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

代码如下:

装箱的内部过程

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

二,拆箱

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

代码如下:

拆箱的内部过程

  • 当需要从引用类型中提取值类型数据时进行拆箱操作。
  • CLR会检查引用类型的实际数据类型是否与拆箱的目标值类型相匹配,如果不匹配会引发无效的类型转换异常。
  • 拆箱操作会从堆上的对象中提取值类型的数据,并将其转换为目标值类型。
相关推荐
xcLeigh15 小时前
Unity基础:C#脚本的创建与挂载——让你的游戏物体活起来
游戏·unity·c#·教程
花落人散处15 小时前
CDiskClean 开发历程——文件&进程实时监控-实现方案参考
c#
猿长大人19 小时前
C# | MediatR 入门指南:后端架构解耦
分布式·后端·架构·c#·.net
回忆2012初秋19 小时前
C# 中的 EAP:基于事件的异步编程全面指南(一)
开发语言·c#
曹牧20 小时前
C#:Type
开发语言·c#
用户37215742613521 小时前
C# 如何在 Excel 中创建下拉列表:3 种常见数据源实现方式
c#
czhc114007566321 小时前
工业视觉检测中的通用设计模式与技术笔记
c#
明如正午1 天前
【C#】volatile 关键字深度解析:为什么我的停止按钮有时失灵?
c#
猿长大人1 天前
C# | JSON 序列化中的多态接口处理:基于 Attribute 实现精准 $type 控制
c#·json