我想創建一個通用函數。我是通用的新手。 我有3個不同類型的私人列表。我想要一個公共的泛型方法來返回列表的一個項目。德爾福功能通用
我的代碼如下。 (我把它simplifie)
TFilter = class
private
FListFilter : TObjectList<TFilterEntity>;
FListFilterDate : TObjectList<TFilterDate>;
FListFilterRensParam : TObjectList<TFilterRensParam>;
public
function yGetFilter<T>(iIndice : integer) : T;
....
function TFilter .yGetFilter<T>(iIndice : integer) : T;
begin
if T = TFilterEntity then
result := T(FListFilter.Items[iIndice])
else
....
end;
我知道,代碼不能運行,但你可以告訴我,如果這是可以做到的事情是什麼呢?
這看起來像一個弱使用泛型。任何時候你必須包含一個運行時類型測試,通常意味着設計很差。我懷疑你可以做得更好。 – 2014-09-30 07:59:13