值类型与引用类型

堆栈:

   把栈想象成堆砌起来由上到下的盒子。每次我们调用一个方法,就新加一个盒子到栈顶,我们用这种方法跟踪我们的程序在执行些什么。我们能用的,永远只是最顶上的那个盒子。

  栈的内存是自己管理的,当最上层的那个盒子使用完毕,自动销毁.

   堆里的东西不受任何限制,随意访问.主要存储数据.堆中的内存资源由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 调用引用地址,即可

原文地址:https://www.cnblogs.com/joker-xp/p/3156209.html