5
德爾福2010年,我已經定義了一個通用的TInterfaceList如下:是否可以使用Delphi泛型TInterfaceList?
type
TInterfaceList<I: IInterface> = class(TInterfaceList)
function GetI(index: Integer): I;
procedure PutI(index: Integer; const Item: I);
property Items[index: Integer]: I read GetI write PutI; default;
end;
implementation
function TInterfaceList<I>.GetI(index: Integer): I;
begin
result := I(inherited Get(Index));
end;
procedure TInterfaceList<I>.PutI(index: Integer; const Item: I);
begin
inherited Add(Item);
end;
我已經沒有任何問題,然而,卻是有什麼內在的風險這樣做呢?是否可以添加一個枚舉器來允許for循環在它上面工作?如果沒有問題,我想知道爲什麼RTL中沒有定義類似的東西。