首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TDictionary -密钥无效

TDictionary -密钥无效
EN

Stack Overflow用户
提问于 2009-03-12 15:42:06
回答 3查看 786关注 0票数 1

我的代码是这样的:

代码语言:javascript
复制
type
  TMyDictionary = TDictionary<int, int>;

var
  myDict: TMyDictionary;
  k, v: integer;

  // code to fill the dictionary

  for k in myDict.Keys do
  begin
     v := myDict.Items[k];

     // other stuff
  end;

我随机地看到'v := myDict.Itemsk;‘抛出了一个异常,说明k是无效的。

还有人看过这个吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-20 14:56:10

查看CodeCentral,我发现了许多针对TDictionary的错误,特别是支持for的枚举器。在...构造。

票数 1
EN

Stack Overflow用户

发布于 2009-03-12 15:49:53

您是否正在修改标记为// other stuff的部分中的myDict

票数 1
EN

Stack Overflow用户

发布于 2009-03-12 15:53:23

尝试在一个仅包含局部变量的方法中重现此问题。

可能是您从两个不同的线程中使用了变量,也可能是您正在更新myDict中的元素。

我将尝试解释更多关于重现它的答案:

你应该创建一个可以在另一台计算机上运行的方法,并显示你得到的错误。

所以举个例子(问题:我得到一个被零除的异常):

代码语言:javascript
复制
var
   i : integer;
begin
   i := 3;
   while (i <= 0) do
   begin
     Writeln(FloatToStr(20/i));
     Dec(i);
   end;
end

如果你在一台计算机上运行它,人们会得到除以零的异常。所以我能够重现这个问题。尝试创建一个尽可能简单的代码片段,以一致的方式重现您所遇到的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/639232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档