1

我有以下代码:

double dd;
Dictionary<string, double> dic = new Dictionary<string,double>();
bool notin = this.summedVars.TryGetValue(bacino, out dic);
if(notin == false)
    this.summedVars.Add(bacino,dic);
dic.TryGetValue(id, out dd);
dic[id] = dd + d;

当我运行它时,我收到错误:

dic 设置为空引用

如何在不添加值的情况下summedVars使用 new进行初始化?Dictionary

4

1 回答 1

2

我怀疑 TryGetValue 正在使您的输出参数(dic)归零。在那条线之后你需要一个安全网

例如

dic = dic ?? new Dictionary<string,double>();

您的代码将变为:

                double dd;
                Dictionary<string, double> dic;
                bool notin = this.summedVars.TryGetValue(bacino, out dic);
                dic = dic ?? new Dictionary<string,double>();
                if(notin == false)
                    this.summedVars.Add(bacino,dic);
                dic.TryGetValue(id, out dd);
                dic[id] = dd + d;
于 2012-07-16T16:44:31.300 回答