首页 > 代码库 > readonly 与 const
readonly 与 const
- readonly
- MSDN定义:readonly 关键字是可以在字段上使用的修饰符。当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。
- readonly修饰的字段只能在两个地方对其赋值,第一个是初始化字段的时候,第二个是构造函数中。
1 class Age 2 { 3 //第一个可赋值的地方 4 //private readonly int _year = 20; 5 readonly int _year; 6 7 Age(int year) 8 { 9 //第二个可赋值的地方10 _year = year;11 }12 void ChangeYear()13 {14 //除了上面两除,其他方式都不能改变它的值15 //编译不能通过16 _year = 1967;17 }18 }
- const
- MSDN定义:const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。
- const 修饰的字段只能在初始化字段的地方为其赋值。
1 class Age 2 { 3 //唯一可赋值的地方 4 const int _year = 20; 5 6 Age(int year) 7 { 8 //编译不能通过 9 _year = year;10 }11 void ChangeYear()12 {13 //编译不能通过14 _year = 1967;15 }16 }
- 区别:
- const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。
- 由于readonly字段可在构造函数中赋值,在不同的实例中可以有不同的值。而const字段相当于常量,在不同的实例中具有相同的值。
- 另外,const 字段是编译时常量,而 readonly 字段(配合static修饰符)可用于运行时常量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。