В Delphi 2009 у меня до сих пор не было серьезных проблем с Generics (с использованием списков Generics.Collections, без специальных функций Generics).
Теперь я обнаружил, что этот код вызовет AV в строке, которая обращается кMyList.Contains
.
Ошибка исчезнет, если я объявлю TMyList = class(TList<TMyEntry>)
;
Должен ли я избегать TObjectList<T>
или что-то еще в моем коде вызывает эту ошибку?
type
TMyEntry = class(TStringlist);
TMyList = class(TObjectList<TMyEntry>);
procedure TListTests.TestAV;
var
Entry: TMyEntry;
MyList: TMyList;
begin
MyList := TMyList.Create;
try
Entry := TMyEntry.Create;
MyList.Add(Entry);
Assert(MyList.Contains(Entry)); // <--- AV
finally
MyList.Free;
end;
end;