staticreadonly与const的区别!

  • C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景。  

    成都创新互联公司10余年专注成都高端网站建设按需定制设计服务,为客户提供专业的成都网站制作,成都网页设计,成都网站设计服务;成都创新互联公司服务内容包含成都网站建设,微信小程序,软件开发,网络营销推广,网络运营服务及企业形象设计;成都创新互联公司拥有众多专业的高端网站制作开发团队,资深的高端网页设计团队及经验丰富的架构师高端网站策划团队;我们始终坚持从客户的角度出发,为客户量身订造网络营销方案,解决网络营销疑问。

  • 工作原理  

  • readonly为运行时常量,程序运行时进行赋值,赋值完成后便无法更改,因此也有人称其为只读变量。  

  • const为编译时常量,程序编译时将对常量值进行解析,并将所有常量引用替换为相应值。  

  •    下面声明两个常量:  

  • publicstaticreadonlyint A = 2; //A为运行时常量

  • publicconstint B = 3; //B为编译时常量

  • 下面的表达式:  

  • int C = A + B;  

  • 经过编译后与下面的形式等价:  

  • int C = A + 3;  

  • 可以看到,其中的const常量B被替换成字面量3,而readonly常量A则保持引用方式。  

  • 声明及初始化  

  • readonly常量只能声明为类字段,支持实例类型或静态类型,可以在声明的同时初始化或者在构造函数中进行初始化,初始化完成后便无法更改。  

  • const常量除了可以声明为类字段之外,还可以声明为方法中的局部常量,默认为静态类型(无需用static修饰,否则将导致编译错误),但必须在声明的同时完成初始化。


当前文章:staticreadonly与const的区别!
文章链接:http://pwwzsj.com/article/isphhs.html