第 7 章 常量和字段

第 7 章 常量和字段

本章内容:

7.1 常量

常量是值从不变化的符号。定义常量符号时,编译器将常量值保存到程序集元数据中。代码引用常量符号时,将值签入生成的 IL 代码中。这意味着只能定义编译器识别的基元类型的常量。

常量不需要分配内存,也不能获取地址或传递引用。常量不适合用于跨程序集的版本控制。

7.2 字段

字段是一种数据成员,其中容纳了一个值类型的实例或者对一个引用类型的引用。字段可以是任何数据类型

类型字段

容纳字段数据所需的动态内存是在类型对象中分配的,而类型对象是在类型加载到一个 AppDomain 时创建的,AppDomain通常是在引用了该类型的任何方法首次进行 JIT 编译的时候加载的。

实例字段

容纳字段数据所需的动态内存是在构造类型的实例时分配的。

CLR 支持 readonly 字段和 read/write 字段。大多数字段都是 read/write字段,意味着在代码执行过程中,字段值可多次改变。但readonly 字段只能在构造器方法中写入。注意,可利用反射来修改readonly字段。