readonly与const的区别
1、const常量在声明的同时必须赋值,readonly在声明时可以不赋值
2、readonly只能在声明时或在构造方法中赋值(readonly的成员变量可以根据调用不同的构造方法赋不同的值)
3、const前面不能添加static(因为Const本来就是一个静态常量),readonly前面可以添加static
4、const在编译的时候赋值,readonly在运行的时候赋值
5、const能在方法内声明,readonly不能在方法内声明
class ReadOnlyAndConst
{
public const string name="张三";//const常量是本来就是静态常量,所以前面不能加static
public static readonly int age;
public ReadOnlyAndConst(int age)
{
//this.age = age;
}
public void Method()
{
//this.age = 23; //出错readonly的字段只能在声明时或在构造方法中赋值
const int num1 = 10;//const可以在方法内部声明
//readonly int num2 = 10;//出错,readonly不能在方法内部声明
}
}