c#基础之拆箱与装箱

(一)装箱与拆箱

(1)拆箱是从引用类性到值类型的转换,装箱是值类型到引用类性的转换。

装箱   是值类型到 object 类型或到此值类型所实现的任何接口类型的隐式转换。对值类型装箱会在堆中分配一个对象实例,并将该值复制到新的对象中。

拆箱   是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。注意,只能拆回最开始的类型。

int i=10;
object obj=i;//(装箱,此时将值类型转换成引用类性,会开辟2个内存,一个存储obj的地址,一个存储其值,在这里obj的值为10.)
int  j=(int)obj;//j=10。拆箱,从值类型转换成引用类型,在这里开辟一个内存,存储j的值
int k=(int) obj;//k=10.拆箱。

(2)避免装箱的方法:
  1、通过重载函数来避免。
  2、通过泛型来避免。 

--本人菜鸟,暂时不记录更深入的东西。欢迎提点。

猜你喜欢

转载自www.cnblogs.com/anjingdian/p/10890375.html