【发布时间】:2015-07-22 12:56:36
【问题描述】:
我有几个类如下:
Type
TSystemBaseEntity = class(TPersistent)
private
FID: integer;
public
property ID: integer read FID write FID;
end;
TProcessHeaderEntity = class(TSystemBaseEntity)
private
FHeaderDate: TDateTime;
public
property HeaderDate: TDateTime read FHeaderDate write FHeaderDate;
end;
TInvoiceHeaderEntity = class(TProcessHeaderEntity)
private
FCustomerId: integer;
public
property CustomerId: integer read FCustomerId write FCustomerId;
end;
TRequestHeaderEntity = class(TProcessHeaderEntity)
private
FWarehouseId: integer;
public
property WarehouseId: integer read FWarehouseId write FWarehouseId;
end;
TDataList = class(TPersistent)
private
FValues: TObjectList<TSystemBaseEntity>;
protected
function SetCaption: string; virtual;
public
procedure Execute; virtual; abstract;
property Values: TObjectList<TSystemBaseEntity> read FValues;
end;
TInvoice = class(TDataList)
public
procedure Execute; override;
end;
如何通过 Values 属性获取具有从 TSystemBaseEntity 继承的泛型类型的对象列表?
例如,发票列表 (TInvoiceHeaderEntity) 或请求列表 (TRequestHeaderEntity) 以及对其属性的访问权限。
【问题讨论】:
-
没有内置的方法可以按内容类型过滤列表,如果这就是您所要求的。如果这不是您要问的,那么我不确定您的障碍是什么。
-
如何获取列表?从哪里得到?你的意见是什么?
-
@DavidHeffernan,我需要有一个类型列表,通过传递一个类型(例如 TInvoiceHeaderEntity ) TDataList 会给我一个列表
-
请再次阅读我的评论并尝试解决我提出的问题。
标签: delphi generics delphi-2010