C#装箱和拆箱

         碰到这个问题两次了,翻了两次车的情况下总结一下装箱和拆箱,这里呢涉及到两个东西,值类型还有引用类型

值类型是什么:C#中的多数基本类型都是值类型,值类型包括简单类型,枚举类型,结构类型

引用类型是什么:引用类型表示指向数据的指针或引用,可存储对实际数据的引用。引用类型

在内存中的存储位置仅包含堆上对象的地址的引用引用类型包括类、接口、数组、字符串,引用类

型为null时,表示没有引用任何对象。

        好了,了解了上面这俩个东西之后就可以看看什么是装箱和拆箱了

装箱和拆箱的过程会占用内存资源,因此都要尽量的避免使用装箱和拆箱,

装箱:将一个值类型转换成引用类型,那么这个过程就是装箱

int i=1;      //声明一个int型的变量i
object obj=i;   //将这个值装箱进一个对象应用

拆箱:将一个引用类型转换成值类型,那么这个过程就是拆箱

int i=1;
object obj=i;
int j=(int) obj;   //执行拆箱操作

装箱拆箱的过程都会极大的破坏程序的性能,我之前用的多的都是泛型操作,没去深入的理解这个概念,用的少,也算是补偿自己的一点不足之处吧

那么拆箱跟装箱的损失可以通过使用泛型集合类来补偿,可以用List<T>和Dictory<Tkey,Tvalue>泛型来代替ArrayList和HashTable,即使是List<object>

也会比ArrayList性能好

转载于:https://www.cnblogs.com/yinxuejunfeng/p/9759782.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值