1、装箱就是将值类型转换为引用类型(object类型是一切类型的父类,根据里式转换法可以接受任意类型的数据,当然也可以强制转换为其他类型)
2、拆箱就是将引用类型转换为值类型
*在代码中尽量减少装箱和拆箱,一旦有装箱和拆箱就会影响运行时间
**看两种类型是否发生了装箱和拆箱,要看这两种类型是否有继承关系;如果没有继承关系例如:string 转换为int,他们没有继承关系,在内存上一个在栈中一个在堆中,内存没有交集不会发生拆装箱,有继承关系的在内存中才有可能没有有交集
string str = "123456";int num = Convert.ToInt32(str); 此处没有发生类型转换
1、拆装箱:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 拆箱和装箱
{
class Program
{
static void Main(string[] args)
{
//object 是一切类的直接或间接父类
int m = 10;
object obj = m;//装箱
int n = (int)obj;//拆箱
Console.WriteLine(obj);
Console.WriteLine(n);
Console.ReadKey();
}
}
}
运行结果:

本文详细介绍了C#中的装箱和拆箱概念,装箱是将值类型转换为引用类型(object类型),而拆箱则是将引用类型转换回值类型。文章强调了尽量避免频繁进行装箱和拆箱操作以减少运行时间的影响。通过实例分析了不同类型之间的转换,如string到int,并指出只有存在继承关系的类型间转换才可能涉及拆装箱。
&spm=1001.2101.3001.5002&articleId=80724162&d=1&t=3&u=103e675af06f456380d73c9719e9d7d2)
1093

被折叠的 条评论
为什么被折叠?



