---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
readonly 修饰符用来表示只读的,const用来表示不变常量;readonly与const都是标识常量的!
不同点:
1、初始化不同!
const必须在声明的同时就赋值:
例如:public const int MaxVlaue=10;//正确,
public const int MaxVlaue;//错误。
readonly字段可以在初始化的过程中赋值(声明或是构造函数中),记住是在初始化的过程中,也就是在其它地方是不可以的!
例如:public readonly int a=10;
public readonly int b;//正确
public Class1()
{
b=24;//正确
}
public void Class2()
{
b=24;//错误
}
同时readonly是实例成员;什么是实例成员呢;例如:public readonly Color Red=new Color(255,0,0);
2、const字段是编译时常数,而readonly字段可用于运行时常数。
const例子:
public const int n=1;//正确
public const int m=n+1;//正确
而
public const int k=a+2;//错误
解析:const是编译的时候运行的,所以在初始化的时候必须去赋值,否则编译是不通过的;这也就是运行时变量和编译时变量的区别,a是一个变量只有在运行的时候才知道值是多少,所以下面的那句是错误的!
readonly例子:
public readonly int k =a+1;
3、const默认就是静态的,而readonly如果要设置成静态的就必须显式的声明。
4、const修饰的值的类型都是有限制的,就不再一一列举了!
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------