C#的装箱和拆箱
1:装箱
其实就是将一个值类型的转换成一个引用类型,或者把值类型转换成一个被该值类型那个应用的接口类型,这个过程会使用堆栈。被装箱的值是作为一个复制赋给对象的。
int intValue = 100;
Object obj = i;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Collections;
- namespace ConsoleApplication1
- {
- class Program
- {
- public static void Main(String[] args)
- {
- ArrayList arrayList = new ArrayList();
- for (int i = 0; i < 10; i++)
- {
- arrayList.Add(i); //装箱
- }
- for (int i = 0; i < 10; i++)
- {
- Console.WriteLine(arrayList[i]);
- }
- Console.ReadLine();
- }
- }
- }
2:拆箱
拆箱就是指将一个引用类或者一个对象类型转换成一个值类型的过程。它的执行过程分为两个阶段:
(1) 检查对象的实例,看它是否值类型的装箱值,例如引用类型
(2) 把这个实例的值复制给值类型的变量
int i = 100;
Object obj = i;
int j = (int)obj;