装箱和拆箱是 C# 中的一个重要概念。C# 类型系统包含三种数据类型:值类型( int 、 char 等)、引用类型(对象)和指针类型。基本上,它将值类型转换为引用类型,反之亦然。装箱和拆箱实现了类型系统的统一视图,其中任何类型的值都可以视为对象。
装箱和拆箱的区别 –
| 装箱 | 拆箱 | 
|---|---|
| 它将值类型转换为对象类型 | 它将对象类型转换为值类型 | 
| 装箱是一种隐式转换过程 | 拆箱是显式转换过程 | 
| 装箱将栈中存储的值复制到堆内存中存储的对象中 | 拆箱堆内存上存储的对象复制到栈上存储的值 | 
装箱的示例:
// C# program to illustrate Boxing
using System;
public class GeekdocsbaiDemo {
    static public void Main()
    {
        int val = 2024;
        // Boxing
        object o = val;
        // Change the value of val
        val = 2025;
        Console.WriteLine("Value type of val is {0}", val);
        Console.WriteLine("Object type of val is {0}", o);
    }
}运行结果:
Value type of val is 2025
Object type of val is 2024拆箱的示例:
// C# program to illustrate Unboxing
using System;
public class GeekdocsbaiDemo {
    static public void Main()
    {
        int val = 2025;
        // Boxing
        object o = val;
        // Unboxing
        int x = (int)o;
        Console.WriteLine("Value of o is {0}", o);
        Console.WriteLine("Value of x is {0}", x);
    }
}运行结果:
Value type of val is 2025
Object type of val is 2025
                    