1.const是静态常量;readonly是动态常量;
2.const修饰的常量在声明的时候必须初始化;readonly修饰的常量则可以延迟到静态构造函数中初始化;
3.const修饰的常量在编译期间就被解析,即常量值被替换成初始化的值;readonly修饰的常量则延迟到运行的时候;
4.const常量既可以声明在类中也可以在函数体内,但是static readonly常量只能声明在类中。
5.静态常量只能被声明为简单的数据类型(int以及浮点型)、枚举、布尔或者字符串型,而动态常量则除了这些类型,还可以修饰一些对象类型。如DateTime类型等;
class P
{
static readonly int A = B * 10;
static readonly int B = 10;
public static void Main(string[] args)
{
Console.WriteLine("A is {0},B is {1} ", A, B);//A is 0,B is 10。
}
}
class P
{
const int A=B*10;
const int B=10;
public static void Main(string[] args)
{
Console.WriteLine("A is {0},B is {1} ",A,B); //A is 100,B is 10。
}
}