A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-张扬 中级黑马   /  2012-12-4 11:30  /  948 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马-张扬 于 2012-12-4 11:32 编辑

微软的帮助文件中说,声明为readonly的字段只能在定义时、或者构造函数内可以赋初始值(大概是这个意思)。那么下面的写法中两处赋值的地方应该多可以对吧?
  1. public static class ClassA
  2. {
  3. private static readonly Dictionary<string, int> _Dic = new Dictionary<string, int>();
  4. static ClassA(Dictionary<string, int> dic)
  5. { _Dic = new Dictionary<string, int>(); }
  6. };
复制代码
我的问题是,给_Dic中添加元素是不是在这个class的任何地方都可以?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

1 个回复

倒序浏览
第一个问题:静态构造函数中不能有参数,你这样会报错的。readonly常量只能声明为类字段,支持实例类型或静态类型,可以在声明的同时初始化或者在构造函数中进行初始化,初始化完成后便无法更改。readonly为运行时常量,程序运行时进行赋值,赋值完成后便无法更改,因此也有人称其为只读变量。readonly用在这里是用于指定该常量属于类级别,并且把初始化工作交由静态构造函数。第二个问题,只能在静态构造函数中添加 。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马