TDictionary jako wartosc w TDictionary (TDictionary<string, TDictionary<Integer, Integer>>.Create;)

0

Mógłby ktoś sprawdzic dlaczego w funkcji TryGetValue otrzymuje wlasciwosc "count=-1324343434" dla TDictionary<Integer, Integer>. Przykladowy kod ponizej:

DictionaryList := TDictionary<string, TDictionary<Integer, Integer>>.Create;
DictionaryListSecond:  TDictionary<Integer, Integer>.create;
DictionaryListSecond.add(1,254);
DictionaryListSecond.add(2,345);
DictionaryListSecond.add(3,54);
DictionaryList.add('abd', DictionaryListSecond);
DictionaryListSecond.free;

DictionaryList.TryGetValue('abd', lDictionaryVar);

otrzymuje lDictionaryVar.count = "-1324343434" zamiast DictionaryVar.count = "3"

DictionaryList.Free;

0

A za-komentuj linie

DictionaryListSecond.free;

i sprawdź co sie wydarzy

0

Przecież jak usuniesz obiekt to go nie masz i dostajesz głupoty, czego si spodziewasz?

2

dodales referencje a nie kopie obiektu.
zainteresuj sie TObjectDictionary i nie zwalniaj ręcznie 'Values'

1 użytkowników online, w tym zalogowanych: 0, gości: 1