第八章 常数与字段
一、常数
1、可被定义为常数的类型有:
2 基元类型:boolean, char, byte, sbyte, decimal, int16, int32, uint16, uint32, int64, uint64, single, double
2 字符串:string
2 枚举类型
2、常数在编译后直接嵌入il代码中,因此一个模块中的常数不能在运行时被另一模块获取,前者对常数进行的修改无法被另一个模块在运行时感知,因此要想在运行时获取“不变数值”应该使用只读字段
二、字段
1、字段(包括静态、实例或只读字段)均在运行时分配内存
2、只读字段只能在构造器中被符值(也可在声明时被直接赋值,其他地方均不允许,实际上同于在构造器中赋值),静态只读字段在类型构造器中赋值,实例只读字段在实例构造器中被符值。
3、静态只读字段只能使用类型名访问,而不能使用实例引用访问
三、静态只读字段和常数的区别:
1、常数直接编译时刻嵌入il代码,在运行时不可重新读取,静态只读字段则可以在运行时重新读取
2、常数只能在声明处赋值,而静态只读字段则可在构造器中赋值