首页 > 代码库 > [C#] 装箱和拆箱(整理中)

[C#] 装箱和拆箱(整理中)

  装箱是将值类型转换为 object 类型或由此值类型实现的任何接口类型的过程。 当 CLR 对值类型进行装箱时,会将该值包装到 System.Object 内部,再将后者存储在托管堆上。 取消装箱将从对象中提取值类型。 装箱是隐式的;拆箱是显式的。 装箱和拆箱的概念是类型系统 C# 统一视图的基础,其中任一类型的值都被视为一个对象。

  在下面的示例中,将整型变量 i 进行了装箱并分配给对象 o

1         static void Main(string[] args)2         {3             var i = 123;    //System.Int324 5             //对 i 装箱(隐式)6             object obj = i;7 8             Console.Read();9         }

 

  然后,可以将对象 o 拆箱并分配给整型变量 i。

 1         static void Main(string[] args) 2         { 3             var i = 123;    //System.Int32 4  5             //对 i 装箱(隐式) 6             object obj = i; 7  8             //对 obj 进行拆箱(显式) 9             i = (int)obj;10 11             Console.Read();12         }

 

  这里用代码进行演示装箱拆箱操作:

[C#] 装箱和拆箱(整理中)