Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65811
  • 博文数量: 14
  • 博客积分: 569
  • 博客等级: 中士
  • 技术积分: 335
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-22 14:17
文章分类
文章存档

2013年(1)

2012年(13)

我的朋友

分类: IT业界

2012-03-22 11:41:03

在了解了内存机制和熟悉了通用规则的基础上,我们就可以很好地总结出值类型和引用类型在系统设计时,如何做出选择,如何去选择使用值类型。因为引用类型才是.NET的主体,所以它在大部分的场合中已经受到了青睐。

1.值类型的应用场合

1)MSDN中建议以类型的大小作为选择值类型或者引用类型的决定性因素。数据局较小的场合,最好考虑以值类型来实现系统性能的改善。

2)结构简单,不必在多态的情况下,值类型是较好的选择。

3)类型性质不表现出行为时,不必以类来实现,那么以存储数据为主要目的的情况下,值类型是优先的选择。

4)参数传递时,值类型默认情况下传递的是实例数据,而不是内存地址,因此数据传递情况下的选择,取决于函数内部的实现逻辑。值类型可以有高效的内存支持,并且在不暴露内部结构的情况下返回实例数据的副本,从安全性上可以考虑值类型,但是过多的值传递也会损伤性能的优化,应适当选择。

5)值类型没有继承性,如果类型的选择没有子类继承的必要,优先考虑值类型。

6)在可能会引起装箱与拆箱操作的集合或者队列中,值类型不是很好的选择,因为会引起对值类型的装箱操作,导致额外内存的分配。

2.引用类型

1)打个比方来说,引用类型是.NET世界的全职杀手,.NET世界就是由类构成的,类是面向对象的基本概念,也是程序框架的基本要素,因此灵活的数据封装特性
使得引用类型成为主流。

2)引用类型适用于结构复杂、有继承、有多态、突出行为的场合。

3)参数传递情况也是需要考虑的因素。

阅读(1008) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~