常量
是值不会变化的符号,定义在常量符号的时候,它的值是需要一开始就定义的。因为编译器是将常量会保存到元数据中去,所以编译器只能识别基元类型的常量,假如你要设定非基元类型的常量变量,要先将其设置成为Nullpublic const SomeTyoe Empty = null;
因为常量值从来不变化,所以常量值是作为类型的一部分的。换一种角度,常量总是被视为静态成员,一旦定义常量值就会产生元数据。
由于常量的值是直接嵌入到代码中,所以在运行的时候是没有为常量分配地址的任何内存地址,正是因为这样,常量就不能像引用类型一样传递,同理也就不支持跨版本的程序集的更新控制
字段
字段是一种数据成员,其中容纳了一个值类型的实例或者引用类型的引用。
如果是类型字段,容纳字段数据的动态内存是在类型对象中分配的,如果是实例字段那必然是构造对象的时候分配的