常量和只读变量的区别

const string name="Xuj";

readonly string name;

1、常量是不可改变的,只读变量只能在构造方法中才能改变其值。

2、C#编译器在编译的时候,声明常量的那句话不见了,在使用常量的时候就被常量的值替代了,在些数据在整个程序的运行中其值不会发生改变,我们就把这个值定义为常量,以提高程序的运行效率。

3、readonly是运行时确定值,const是编译时必须确定其值。

Eg:

readonly string qq=System.ConfigrationManager.AppSettings[qq].ToString();//右边的内容只有在运行的时候才会被执行,所以这句话无误

const string qq=System.ConfigrationManager.AppSettings[qq].ToString();//const是在编译时候确定其值的,所以这句话出错。