readonly与const区别
- const常量在声明的同时必须赋值,readonly在声明时可以不赋值
- readonly只能在声明时或在构造方法中赋值(readonly的成员变量可以根据调用不同的构造方法赋不同的值)
- const前面不能添加static(因为Const本来就是一个静态常量),readonly前面可以添加static
- const在编译的时候赋值,readonly在运行的时候赋值
- const能在方法内声明,readonly不能在方法内声明
class ReadOnlyAndConstDifference
{
public const string Name = "laowang"; //const常量本来就是静态常量,所以前面不能加static
public static readonly int Gender; //const必须在声明时赋值,readonly可以在声明时不赋值
public ReadOnlyAndConstDifference(int gender)
{
Gender = gender;
}
public void Method()
{
//Gender = 2; //readonly只能在构造函数或者声明的时候赋值
const int num1 = 10; //可以在方法内部声明
//readonly int num2 = 10;出错,readonly不能在方法内部声明
}
static void Main(string[] args)
{
}
}