使用Angle Brackets(我见过有人使用TList <PSomething>)

Jef*_*eff 2 delphi generics casting tlist

我看到人们宣称他们的TList喜欢

MyList : TList<PSomeType>;
Run Code Online (Sandbox Code Playgroud)

然后,当他们创造它时,他们会这样做

MyList := TList<PSomeType>.Create;
Run Code Online (Sandbox Code Playgroud)

因此,我认为通过这样做,他们不必在使用它时对类Mypec.Items [I]进行类型转换,例如:

ShowMessage( PSomeType(MyList.Items[I]).SomeTextProperty );
Run Code Online (Sandbox Code Playgroud)

所以相反他们会做

ShowMessage( MyList.Items[I].SomeTextProperty );
Run Code Online (Sandbox Code Playgroud)

那是对的吗?

如果是这样,为什么我不能让它在Delphi 2010中工作?我正在努力 - 将我的清单声明为

MyList : TList<PSomeType>;

但是编译器说:

未声明的标识符:TList <>

我在那里做错了什么?

Mas*_*ler 14

这些人正在使用通用列表. TList<T>是TList的通用版本,它在单元中声明Generics.Collections,而不是在Classes,在哪里TList.添加Generics.Collections到您的使用列表,你应该没事.