关于堆、栈和数据类型的相关理解

    其实一直以来,对于c#的初学者来说,数据类型和变量存储的相关知识一直是一件相当恼人的事情,经过一段时间的摸索,总结了以下几点。

    一、数据的两种类型

   包括值类型和引用类型,值类型的基类来自valueType(valueType继承自system.object),而引用类型的基类就是system.object;值类型在声明变量时是定义在栈上面的,也就是在拷贝值时会重新声明一个变量,并且在改变新的变量时不会影响原有的变量,而引用类型的变量是一个指针,指向它在堆中的实例,所以改变变量不会改变实例;

值类型删除时依据的是“先进后出”的原理,一旦离开作用域,内存会自动释放,而引用类型采用的是垃圾回收机制;值类型是密封的,所以它一般不能作为基类被继承,而引用类型是可以的;从值类型到引用类型是装箱,反之则为拆箱,所以值类型有两种状态:装箱和拆箱,而引用类型只有拆箱状态;

转载于:https://www.cnblogs.com/piter_mao/archive/2010/11/09/1873102.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值