【C#】readonly关键字
时间:2011-05-04 来源:玄黄道长
【正文目录】
1. 核心内容
2. 注意点
3. readonly与const
【正文内容】
1. 核心内容
readonly关键字修饰的字段只能作为声明的一部分,或者出现在同一类的构造函数中。
以官方例子而言,字段year的只无法再ChangeYear方法中更改,即便已经在该类的构造函数中为它赋过值:
class Age { readonly int _year; Age(int year) { _year = year; } void ChangeYear() { _year = 1967; // 无法通过编译 } }
2. 注意点
只能在下列上下文中对 readonly 字段进行赋值:
(1) 当在声明中初始化变量时,例如:
private readonly int MAX_VALUE = 1024;
(2) 对于实例字段,在包含字段声明的类的实例构造函数中;对于静态字段,在包含字段声明的类的静态构造函数中。
只有在这些上下文中,将 readonly 字段作为 out 或 ref 参数传递才有效。
3. readonly与const
(1) const 字段只能在该字段的声明中初始化。
(2) readonly 字段可以在声明或构造函数中初始化。
(3) 根据所使用的构造函数,readonly 字段可能具有不同的值。
(4) const 字段为编译时常数,而 readonly 字段可用于运行时常数。例如:
private static readonly uint lticks = (uint)DateTime.Now.Ticks;
【参考地址】
MSDN:
http://msdn.microsoft.com/zh-cn/library/acdd6hb7%28v=vs.80%29.aspx
相关阅读 更多 +