readonly修饰符
字段可以用readonly修饰符声明。其作用类似将字段声明为const,一旦设定不能改变。
readonly和const的区别:
- const只能在声明时初始化,而readonly可以在任意位置设置值。(字段声明语句类似const。类的任何构造函数。如果是static字段,初始化必须在静态构造函数中完成。)
- const字段的值必须在编译时决定,而readonly字段的值可以在运行时决定。
- const的行为总是静态的,而对于readonly字段以下两点是正确的:1它可以是实例字段,也可以是静态字段。2它在内存中有存储位置。
例:
class Shape
{
readonly double PI = 3.1416;
readonly int NumberOfSide;//边的数量
//矩形
public Shape(double side1, double side2)
{
NumberOfSide = 4;
}
//三角形
public Shape(double side1, double side2, double side3)
{
NumberOfSide = 3;
}
}
PI在声明时初始化。
NumberOfSide在构造函数中初始化。
成员常量
被声明在类中。声明时初始化。
class MyClass {
const int a = 1