代码改变世界

Effective C# 学习笔记(十八)区分值类型和引用类型

2011-07-09 23:21  小郝(Kaibo Hao)  阅读(300)  评论(0编辑  收藏  举报

一般的原则是:值类型用于存储数据,类来定义行为。

值类型特征:

  1. 值类型在对其属性访问时会拷贝值创建新的对象,而不会修改原来的值。
  2. 值类型对OO支持不够,虽然其可以实现接口,但是其在装箱时相当消耗资源。
  3. 值类型利用基于栈的存储空间进行数据存储

 

在以下情景下请使用值类型

  1. 类型的原则性职责是存储数据
  2. 都是通过属性方式访问数据
  3. 确保对该类型没有子类
  4. 确保该类型不会产生多态

 

除此之外请使用引用类型。