第二部分 设计类型:第7章 常量和字段
7.1 常量
定义常量符号时,它的值必须能在编译时确定,确定后编译器将常量的值保存到程序集的元数据中。
定义常量只能是编译器认定的基元类型:Boolean、Char、Byte、SByte、Int16、Int32、UInt32、Int64、UInt64、Single、Double、Decimal、String。
C#也允许定义一个非基元类型的常量变量(constant variable),前提是把它的值设置为null。
常量被视为类型定义的一部分、被视为静态成员,将导致创建元数据。
编译时常量的值被直接嵌入IL代码中,运行时不需要为常量分配任何内存。不能获取常量地址,不能以传引用的方式传递常量。所以,常量没有很好的垮程序集版本控制特性。
7.2 字段
字段是一种数据成员,容纳了一个值类型的实例或引用类型的引用。
字段存储在动态内存中,他们的值在运行时才能获取。字段可以是任何数据类型。
字段一般都是在构造函数中被初始化的。