const和readonly的区别
readonly修饰符用来表示只读,const表示不变常量。顾名思义,只读不能进行写操作,不变常量不能被修改,这两者到底有什么区别呢?
1.const和readonly都是用来标识常量的。
2.初始化赋值不同
const修饰的常量必须在声明的同时赋值。例如:
public class www_35hunan_com
{
public const int tempInt = 10;//正确
public const int tempInt;//错误,const修饰的常量必须在声明的同时赋值
}
readonly 字段可以在初始化(声明或构造函数)的过程中赋值,其他地方不能进行赋值,
public class www_35hunan_com
{
public readonly int tempInt = 10;//正确
public www_35hunan_com()
{
this.tempInt = 10;//正确
}
public void MyMothod()
{
this.tempInt = 10;//错误
}
}
3.const字段是编译时常量,而readonly字段运行时常量
4.const默认就是静态的