const vs readonly

Posted liguangsunls

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const vs readonly相关的知识,希望对你有一定的参考价值。

1. const 仅仅能修饰基本类型和string, null两种引用类型. readonly能够修饰全部类型. 

2. const 申明时不需要static 修饰符, 由于必需要静态訪问. 

3. const 必须在编译时知道它的值, 而 readonly 能够在执行时初始化. 

4. 编译时常量的位置会被它的值替代. 所以一个dll编译完它的常量值永远不会改变,除非又一次改动常量定义且又一次编译.

public, static, const 的关系. 

1. 三种不同的修饰符. 它们的作用互相独立, 比如一个变量是 static 和 它是 public 还是 private 无关, static 仅仅影响变量是类訪问还是对象訪问.

2. 少数情况这几个修饰符不能一起出现. 如 static 构造函数不能是 public, 由于这个构造函数仅仅能是类自己调用,外部不应该知道有这个构造函数. 

3. const 不能是静态的, 由于 const 和详细对象无关,仅仅和类有关, 本身有静态的含义, 当然这违反了第一条原则,并且也clean code的"纯粹"原则,可是const确实有静态的含义.

以上是关于const vs readonly的主要内容,如果未能解决你的问题,请参考以下文章

VS2010 中的 const 问题

const vs readonly

text 让vs const

csharp Const Vs readonly

func(QWidget* const &widget) VS func(QWidget* const widget)

javascript Const vs Let:ES6