引用类型耗时:4437
值类型耗时:5226
可见在普通情况下,作为参数值类型和引用类型用时差距不大,但是,如果值类型的实例属性比较多的情况下差距降进一步拉大。
非正式环境测试用例,结果仅供参考
应用场景
不止是面试的时候经常问应用场景这个问题,就是自己平时写程序也应该清楚。程序设计选择的时候大部分场景都是用引用类型,但是如果你满足下列条件,值类型可能更适用:
- 类型不会派生出任何其它类型,也就是说不会有被继承的可能
- 类型不需要继承其他类型
- 类型的实例比较小,并且不会被作为方法参数,不会被频繁赋值
- 你永远不会用到类型释放时候的通知,因为引用类型利用析构函数可以利用其他手段可以得到释放时候的通知。
-
如果你的类型实例不会发生值的改变或者可以认为是readonly性质的,值类型或许是首选。
其他
-
所有的值类型都从System.ValueType 派生,
System.ValueType
-
所有的值类型都从System.ValueType 派生,










