装箱:值类型-->引用类型。
拆箱:引用类型-->值类型
装箱:把值类型拷贝一份到堆里。反之拆箱。
具有父子关系 是拆装箱的条件之一。
所以:
class Program { static void Main(string[] args) { //不是装拆箱 (类型转换) int n = 100; string s = Convert.ToString(n); //根据值在堆里创建,不是复制 int m = int.Parse(s); //是装拆箱 int x = 100; object o = x; int y = (int)o; } }
装的什么类型,拆的时候也必须是对应类型。
使用方法时看是否装拆箱:看需要的参数和传入的参数的集体类型。
使用泛型集合避免装拆箱。