值类型与引用类型
堆栈:
把栈想象成堆砌起来由上到下的盒子。每次我们调用一个方法,就新加一个盒子到栈顶,我们用这种方法跟踪我们的程序在执行些什么。我们能用的,永远只是最顶上的那个盒子。
栈的内存是自己管理的,当最上层的那个盒子使用完毕,自动销毁.
堆里的东西不受任何限制,随意访问.主要存储数据.堆中的内存资源由GC(垃圾回收器)管理.
值类型继承自System.ValueType:
bool, byte, char, decimal, double, enum, float, int, long, sbyte, short, struct, uint, ulong, ushort
引用类型:
而引用类型则有:
class, interface, delegate, object, string
下面这张MSDN的图,很好的对数据类型进行了分类:
而想要在方法中修改值类型的值时,可以使用ref 或out 调用引用地址,即可