我有一个泛型列表,我想在其中放入一些记录或一些类
TMyList<T> = class private fCount: Cardinal; fItems: array of T; public constructor Create(aSize: Integer); procedure UpdateItem(const x: T); end;
但我不能编译
procedure TMyList<T>.UpdateItem(const x: T); var I: integer; begin for I := 0 to fCount - 1 do if fItems[I] = x then begin // <- error E2015 //do update break; end; end;
它适用于具有此声明的类:TMyList< T:class> = class,但它不能再保存记录了.
当然,对于记录我声明类运算符Equal(Left,Right:TMyRecord):Boolean;这样MyRecord1 = MyRecord2就可以编译了.