CLR via C#第五章:值类型和引用类型

使用引用类型时,必须考虑以下事实:

  1. 内存必须从托管堆上分配
  2. 堆上分配的每个对象都会有一些额外的成员,这些成员必须初始化
  3. 对象中的其他的字节总是设为0
  4. 从托管堆上分配一个对象时,可能强制执行一次垃圾回收集操作。

值类型是轻量级的类型,使用值类型缓解了托管堆中的压力

  • 值类型派生自ValueType(隐式派生)。
  • 结构体派生自ValueType,枚举类型派生自Enum。而Enum又派生自ValueType。
  • 值类型存储在栈上,而引用类型存储在托管堆上。(引用类型中也会有值类型,此时的值类型是在托管堆上的)
  • 值类型一般就是值本身,并不是和引用类型一样(引用类型内会有指针,指向对象实例)

值类型和引用类型的比较:

  1. 值类型有未装箱和已装箱两种形式,引用类型都是已装箱的形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值