C# 的“装箱”和“拆箱”;
C#语言类型系统中有两个重要的概念,分别是装箱和拆箱,通过装箱和拆箱,任何值类型都可以被当作 object 引用类型来看。
1.装箱
装箱,实质上就是将之类型转换为引用类型。
例:
创建一个控制台应用程序,声明一个整型变量 i 并赋值为2020,然后将其复制到装箱对象 obj 中,最后改变变量 i 的值。
using System;
namespace lian__xi
{
class Program
{
static void Main(string[] args)
{
int i = 2020; //声明一个int类型变量i,并初始化为2020;
object obj = i; //声明一个object类型的obj,其初始化值为;
Console.WriteLine(“1、i的值为{0},装箱之后的对象为{1}”, i, obj);
i = 331; //重新将i赋值为331;
Console.WriteLine(“2、i的值为{0},装箱之后的对象为{1}”, i, obj);
Console.ReadLine();
}
}
}
运行结果:
1、i的值为2020,装箱之后的对象为2020
2、i的值为331,装箱之后的对象为2020
从程序运行结果可以看出,值类型变量的值复制到装箱得到的对象中,装箱后可以改变值类型变量的值,并不会影响装箱对象的值。
2.拆箱
拆箱,实质上就是将引用类型转换为值