const VS readonly 区别

const VS readonly   区别
常量(const)和只读字段(readonly)的区别其实很简单,对于const记住两点:第一、常量的值是在编译时设定的,可以由程序员制定,默认状态是编译器设定;第二、常量变量的值必须是数值文字,默认状态下常量是静态的,这点从MSIL代码可以看出。而只读字段只能在构造函数里定义,就是说只有实例化之后才能使用,这又要分是否加static修饰符了,如果加入了static修饰符,那么在类里如果加入了静态的构造函数,那么不需要实例化就可以直接使用。

-----------------
也就是说常量是在编译时确定其值的. 各种变量(包括static变量)是在运行时 通过构造器(实例构造器或类型构造器)进行初始化的. 常量在编译后其值是放在模块的元数据中的. 同时由于常数是在编译时初始化,所有其 能够支持的数据类型也是有限的(其类型必须是编译器认识的“基元类型“如Int32,String等,至于其他的各种类型就不支持了).
posted @ 2006-01-11 14:37  torome  阅读(188)  评论(0编辑  收藏  举报