您的位置:首页 > 其它

值类型和引用类型的区别

2011-05-12 20:08 197 查看
存储的区别:

值类型的实例经常会存储在栈上的。但是也有特殊情况。如果某个类的实例有个值类型的字段,那么实际上该字段会和类实例保存在同一个地方,即堆中。
不过引用类型的对象总是存储在堆中。如果一个结构的字段是引用类型,那么只有引用本身是和结构实例存储在一起的(在栈或堆上,视情况而定)。

函数参数传递时的区别:

值类型是把自己的值复制一份传递给别的函数操作.无论复制的值怎么被改变.其自身的值是不会改变的
而引用类型是把自己的内存地址传递给别的函数操作.操作的就是引用类型值的本身.所以值被函数改变了.

一般引用类型可以派生出新的类型,而值类型不能;引用类型可以包含null值,值类型不能(string 除外:string 由于其是恒定的字符串以及它的驻留机制,使得它既是基元类型又是引用类型,在编译以及运行时,.Net都对它做了一些优化工作);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: