温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

static readonly与const的区别!

发布时间:2020-06-16 16:08:34 来源:网络 阅读:435 作者:liky1986 栏目:编程语言
  • C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景。  

  • 工作原理  

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

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

  •    下面声明两个常量:  

  • public static readonly int A = 2; //A为运行时常量

  • public const int B = 3; //B为编译时常量

  • 下面的表达式:  

  • int C = A + B;  

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

  • int C = A + 3;  

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

  • 声明及初始化  

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

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI