TDictionary - cheie nevalidă

voturi
1

Am codul de genul:

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;

Randomly văd o excepție aruncată 'v: = myDict.Items [k];' care spune k este nevalid.

Oricine altcineva văzut asta?

Întrebat 12/03/2009 la 14:42
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
1

Sunteți modificarea în myDictinteriorul secțiunii etichetat // other stuff?

Publicat 12/03/2009 la 14:49
sursa de către utilizator

voturi
0

Încercați să reproducă această problemă într-o singură metodă unică doar cu variabile locale.

Ar putea fi că folosind variabila de la 2 fire diferite, sau poate dvs. actualizarea elementelor din myDict.

Voi încerca să explic răspunsul meu cu privire la reproducerea mai:

Ar trebui să creați o metodă care ar putea rula pe un alt computer și arată eroarea pe care o primești.

Deci, de exemplu (Întrebare: Am o divizare prin excepție la zero):

var
   i : integer;
begin
   i := 3;
   while (i <= 0) do
   begin
     Writeln(FloatToStr(20/i));
     Dec(i);
   end;
end

Dacă executați acest lucru pe un calculator, oamenii vor primi decalajul de excepție la zero. Așa că am fost capabil de a reproduce problema. Încercați să creați un fragment cât mai simplu posibil de a reproduce într-un mod coerent problema cu dumneavoastră.

Publicat 12/03/2009 la 14:53
sursa de către utilizator

voturi
1

Privind la CodeCentral am vedea o serie de bug-uri ridicate împotriva TDictionary și, în special, recenzorul care sprijină pentru ... ... în construct.

Publicat 20/03/2009 la 13:56
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more