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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[C#] 装箱和拆箱(整理中)相关的知识,希望对你有一定的参考价值。

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

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

1         static void Main(string[] args)
2         {
3             var i = 123;    //System.Int32
4 
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#] 装箱和拆箱(整理中)的主要内容,如果未能解决你的问题,请参考以下文章

为啥我们需要在 C# 中装箱和拆箱?

C#装箱和拆箱

C#中的装箱和拆箱的简单理解

再谈C#装箱和拆箱操作

C# 装箱和拆箱的简单理解

C#装箱和拆箱