C#装箱和拆箱

一,装箱

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

代码如下:

装箱的内部过程

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

二,拆箱

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

代码如下:

拆箱的内部过程

  • 当需要从引用类型中提取值类型数据时进行拆箱操作。
  • CLR会检查引用类型的实际数据类型是否与拆箱的目标值类型相匹配,如果不匹配会引发无效的类型转换异常。
  • 拆箱操作会从堆上的对象中提取值类型的数据,并将其转换为目标值类型。
相关推荐
DevOpenClub7 小时前
Markdown、HTML 和 PPT 如何稳定交付:文档转换任务的幂等发布流程
开发语言·前端·c#·html·powerpoint
软件黑马王子7 小时前
3.单例模式问题1:构造函数
开发语言·单例模式·c#
软件黑马王子8 小时前
4.单例模式问题2:重复挂载
开发语言·单例模式·c#
夏霞9 小时前
c# 不支持的目标框架 解决方案
开发语言·c#
软件黑马王子10 小时前
5.单例模式问题3:多线程问题
单例模式·前端框架·c#
geovindu10 小时前
CSharp: Template Method Pattern
开发语言·后端·c#·.net·模板方法模式·行为模式
CSDN_RTKLIB10 小时前
SetImpliedSelection
c#
软件黑马王子10 小时前
1.non-MonoBehaviour 单例模式泛型基类
unity·前端框架·c#
高彬11 小时前
SAP ECC6.0 对接 C# web Services服务
开发语言·前端·c#·sap
半亩码田11 小时前
C#转Python第4.4篇:JSON 处理:json 模块 vs System.Text.Json
python·c#·json