C#装箱和拆箱

一,装箱

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

代码如下:

装箱的内部过程

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

二,拆箱

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

代码如下:

拆箱的内部过程

  • 当需要从引用类型中提取值类型数据时进行拆箱操作。
  • CLR会检查引用类型的实际数据类型是否与拆箱的目标值类型相匹配,如果不匹配会引发无效的类型转换异常。
  • 拆箱操作会从堆上的对象中提取值类型的数据,并将其转换为目标值类型。
相关推荐
Traced back10 小时前
WinForms 线程安全三剑客详解
安全·c#·winform
喵叔哟11 小时前
05-LINQ查询语言入门
c#·solr·linq
钰fly15 小时前
工具块与vs的联合编程(豆包总结生成)
c#
c#上位机16 小时前
wpf之行为
c#·wpf
星夜泊客16 小时前
C# 基础:为什么类可以在静态方法中创建自己的实例?
开发语言·经验分享·笔记·unity·c#·游戏引擎
kylezhao201917 小时前
深入浅出地理解 C# WPF 中的属性
hadoop·c#·wpf
多多*18 小时前
2月3日面试题整理 字节跳动后端开发相关
android·java·开发语言·网络·jvm·adb·c#
一念春风19 小时前
C# 通用工具类代码
c#
海盗123419 小时前
WPF上位机组件开发-设备状态运行图基础版
开发语言·c#·wpf
浮生如梦_20 小时前
C# 窗体工厂类 - 简单工厂模式演示案例
计算机视觉·c#·视觉检测·简单工厂模式