游戏技术文章

readonly和const的区别

时间:2017-4-19 22:03:49  作者:棋牌资源网  来源:棋牌资源网  查看:10020  评论:0
内容摘要:const和static readonly的确很像:通过类名而不是对象名进行访问,都是将变量声明为只读,且在变量初始化后就不可改写,在多数情况下可以混用。二者本质的区别在于,牵扯到本质 就要区分静态 和动态常量:静态常量(compile-time constants):静态常量是...
const和static readonly的确很像:通过类名而不是对象名进行访问,都是将变量声明为只读,且在变量初始化后就不可改写,

在多数情况下可以混用。

二者本质的区别在于,牵扯到本质 就要区分静态 和动态常量:

静态常量(compile-time constants):静态常量是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值

动态常量(runtime constants):动态常量的值则是在运行的那一刻才获得的,编译器编译期间将其标示为只读常量,而不用常量的值代替,这样动态常量不必在声明的时候就初始化,而可以延迟到构造函数中初始化。

这两者具有不同的特性,错误的使用不仅会损失效率,而且还会造成错误。

const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定其值,因此他符合静态常量。

 readonly是在运行时计算出其值的,他修饰的常量会延迟到运行的时候

所以还可以通过静态构造函数来赋值

 

1
2
const int num = 10;  //这里 main方法首次启动时就给num确定值了
static readonly int num =10;   //而用readonly时需要程序走到这地各方的时候 才会赋固定值<br><br><br>//,const修饰的常量在编译期间便已将num的字面值算出来了,而static readonly修饰的常量则未解析

 

 

static  readonly

此外const常量既可以声明在类中也可以在函数体内,但是static readonly常量只能声明在类中。

明白了这个本质区别,我们就知道语句中static readonly和const能否互换了

标签:readonly和const的区别 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2021 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved