Я хочу использовать обертку вокруг TDictionary<string,T>
по некоторым причинам. Но когда я пытаюсь перебрать карту по for
, компилятор говорит:
[dcc32 Error] Unit1.pas(23): E2010 Incompatible types: 'T' and 'System.Generics.Collections.TPair<System.string,Unit1.TMyMapWrapper<T>.T>'
Как я могу изменить объявление универсального типа, чтобы сделать простой код, подобный этому, скомпилируемому?
Это мой упрощенный код:
unit Unit1;
interface
implementation
uses
Generics.Collections
;
type
TMyMapWrapper<T> = class
private
fMap : TDictionary<string,T>;
public
procedure foo;
end;
procedure TMyMapWrapper<T>.foo;
var
item : T;
begin
for item in fMap do
;
end;
end.