黑马程序员技术交流社区
标题:
C# 关于readonly的理解
[打印本页]
作者:
黑马-张扬
时间:
2012-12-4 11:30
标题:
C# 关于readonly的理解
本帖最后由 黑马-张扬 于 2012-12-4 11:32 编辑
微软的帮助文件中说,声明为readonly的字段只能在定义时、或者构造函数内可以赋初始值(大概是这个意思)。那么下面的写法中两处赋值的地方应该多可以对吧?
public static class ClassA
{
private static readonly Dictionary<string, int> _Dic = new Dictionary<string, int>();
static ClassA(Dictionary<string, int> dic)
{ _Dic = new Dictionary<string, int>(); }
};
复制代码
我的问题是,给_Dic中添加元素是不是在这个class的任何地方都可以?
作者:
快乐之恋
时间:
2012-12-4 11:49
第一个问题:静态构造函数中不能有参数,你这样会报错的。readonly常量只能声明为类字段,支持实例类型或静态类型,可以在声明的同时初始化或者在构造函数中进行初始化,初始化完成后便无法更改。readonly为运行时常量,程序运行时进行赋值,赋值完成后便无法更改,因此也有人称其为只读变量。readonly用在这里是用于指定该常量属于类级别,并且把初始化工作交由静态构造函数。第二个问题,只能在静态构造函数中添加 。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2