日期:2013-07-18  浏览次数:20627 次

第八章 常数与字段

一、常数

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、常数只能在声明处赋值,而静态只读字段则可在构造器中赋值