常量就是硬编码在软件中的元数据信息.编译之后就被固定在软件中,老死不能修改.你可以理解为手机中的一次性写入固件,或者一次性刻录CD中的内容.只能是基础类型,比如Int32,string,char之类,如果是引用类型,则其引用值必须为null,,所以比较有意义的就是声明为基础的值类型.
字段是保存值类型数据或者引用类型的引用的东东.
const 和 readonly
const声明的字段在编译的时候被硬编码到软件中,编译时就已经确定其值.
readonly是只读类型,只有在构造器中初始化,或者在声明时赋值.一次赋值以后就不能修改.
需要注意的是,使用readonly标示的引用类型,其引用不能修改,但是引用类型内部的内容是可以修改的.比如:
class Program { class Person { public int Age; } static readonly Person p = new Person(); static void Main(string[] args) { p.Age = 15; //OK p.Age = 20; //OK //p = new Person(); //Complie ERROR Console.ReadKey(); } }