Delphi TList<T> 泛型

标签 delphi generics tlist

有人可以向我解释一下这是否可能吗,或者我完全误解了这个 Delphi 功能。

假设我有一个类,我创建了其中一些类,然后将它们添加到 ObjectList 中。通常我这样做:

Type TMyClass = class(TObject)
  stuff: string;
..
end;

Var things: TObjectList;

things := TObjectList.Create;
things.Add(TMyClass.Create);

// now I want to access stuff, so I need to typecast the class
TMyClass(things[0]).stuff..

所以现在我的问题是,是否可以以一种我可以做的方式声明列表,就像.. things[0].stuff 并且仍然可以访问通常的 TObjectList 功能,如 .sort .indexof 等。 ? (无需为此创建一个特殊的类来模拟对象列表)

最佳答案

您正在使用 TObjectList from System.Contnrs ,它管理指针列表。

你想要TObjectList from System.Generics.Collections 。我知道,使用相同的名称可能会有点困惑。

Type TMyClass = class(TObject)
  stuff: string;
..
end;

Var things: TObjectList<TMyCLass>;

things := TObjectList<TMyCLass>.Create;
things.Add(TMyClass.Create);

things[0].stuff..

关于Delphi TList<T> 泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26579324/

相关文章:

multithreading - Delphi 2007 中的 AsyncCall

delphi - 显示 Delphi XE6 中的推送通知

java - Java 1.8.0_65 的推断类型问题

c# - 如何在 C# 中为泛型类型创建实例

java - 对类似方法使用泛型

delphi - delphi tlist对象方法调用

json - Delphi XE 6 使用 System.JSON 方法和实现失败

sqlite - FireDac 获取受 FDQuery.execsql 命令影响的行数

delphi - 如何在 Delphi 调试期间查看通用 tList