DelphiXE2のジェネリックコレクションに列挙子を使用したいと思います。GetEnumerator関数によって返されるTEnumeratorを誰が所有しているのか疑問に思っています(ドキュメントに明確な答えは見つかりませんでした)。
- 私はそれを所有していて、使用後にそれを解放する必要がありますか?
- それともコレクションが所有していて、リリースする必要はありませんか?
コード:
procedure Test;
var
myDictionary: TDictionary<String, String>;
myEnum: TDictionary<String, String>.TPairEnumerator;
begin
{ Create a dictionary }
myDictionary := TDictionary<String, String>.Create;
myDictionary.Add('Key1', 'Value 1');
myDictionary.Add('Key2', 'Value 2');
{ Use an enumerator }
myEnum := myDictionary.GetEnumerator;
// ... do something with the Enumerator ...
{ Release objects }
myEnum.Free; // ** Do I need to free the enumerator? **
myDictionary.Free;
end;