2
德尔福2009年,我曾与泛型没有大的问题,到目前为止(使用Generics.Collections名单,没有特殊的泛型功能)。TObjectList <T>。载导致访问冲突德尔福2009年
现在我发现这个代码将导致一个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;
相关:http://stackoverflow.com/questions/4216733/仿制TLIST功能于德尔福2009年崩溃上的indexOf – 2012-03-30 09:24:01
@VilleKrumlinde我不只是说相关的,我会说这是完全一样的日ING。 'TObjectList <>'从'TList <>'派生,所以'TList <>'中的错误也出现在'TObjectList <>'中。 – hvd 2012-03-30 09:30:35