装箱与拆箱问题
就是指值类型和引用类型之间的相互赋值问题
装箱:将值类型赋给引用类型(低级向高级转变)
拆箱:将引用类型赋值给值类型(高级向低级转变)
装箱一般不需要强制转换,被称为隐式装箱,也可以加强制转换,被称为显式装箱。
拆箱必须进行强制转换,只能显式拆箱,不能隐式拆箱。
下面举一个例子:int--值类型,object--引用类型
装箱操作
//装箱:值类型赋值给引用类型
int num = 10;
object obj = num; //由低级向高级转换,不需要强制转换,隐式装箱操作
object obj = (object)num; //显示装箱操作
Console.WriteLine(obj); //显示结果为10
Console.ReadKey();
拆箱操作
//拆箱:引用类型赋值给值类型
object ob = 10;
int number = (int)ob; //高级向低级转换,需要强制转换,拆箱(显示拆箱),不能隐式拆箱,必须强制转换
Console.WriteLine(number);
Console.ReadKey();
使用拆装箱的情景:
1.在使用arraylist集合的时候,会用到拆装箱,可以使用list泛型集合解决这个问题。
2.使用object类型,传入值类型数据的时候。
注意
拆箱和拆箱会消耗系统的性能,降低效率,我们应该尽量避免使用拆装箱操作。
1万+




被折叠的 条评论
为什么被折叠?



