.NEt中const和readonly
今天周六加班,可以晚点去。早上起床,我突然想到.NET中const和readonly异同点的问题。因为,我曾经在招聘时,问过到公司面试的一个应聘者,他却不知所云;还给我解释了这两个单词的中文意思。现在是有些开发人员,让他做项目没什么问题.但有些过经过脉(重庆话)的地方可能要欠缺一点.
插一句:这儿我谈谈学知识点的一点体会:
一个知识点一次争取弄个水落石出,并实际练习。一辈子都不会忘。
下面就说说我自己理解的他俩比较突出的区别
1. const 字段只能在该字段的声明中初始化。
readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly字段可能具有不同的值。
2. const 字段是编译时常数,而readonly字段可用于运行时常数。
3. const 对于引用类型的常数,可能的值只能是string和null。
readonly可以是任何类型
注意:readonly对引用类型的修饰时,应理解为这个引用地址不能修改,而这个引用对象的内部字段是可以改的。我在项目中经常用 readonly 实现“单值模式”。如:系统中的“内存表”
插一句:这儿我谈谈学知识点的一点体会:
一个知识点一次争取弄个水落石出,并实际练习。一辈子都不会忘。
下面就说说我自己理解的他俩比较突出的区别
1. const 字段只能在该字段的声明中初始化。
readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly字段可能具有不同的值。
2. const 字段是编译时常数,而readonly字段可用于运行时常数。
3. const 对于引用类型的常数,可能的值只能是string和null。
readonly可以是任何类型
注意:readonly对引用类型的修饰时,应理解为这个引用地址不能修改,而这个引用对象的内部字段是可以改的。我在项目中经常用 readonly 实现“单值模式”。如:系统中的“内存表”