一般的なDelphi2009の使用方法を理解する必要がありますTObjectList
。私の非TObjectList
試みは次のように見えました
TSomeClass = class(TObject)
private
FList1: Array of TList1;
FList2: Array of TList2;
public
procedure FillArray(var List: Array of TList1; Source: TSource); Overload;
procedure FillArray(var List: Array of TList2; Source: TSource); Overload;
end;
ここでは、同じコンストラクターTList1
をTList2
継承しconstructor TParent.Create(Key: string; Value: string);
ます。ただし、専門分野が異なるため(たとえば、プライベートフィールドが異なるため)、同じタイプにはなりません。したがって、ほぼ同じ2つの塗りつぶしメソッドを作成する必要があります。
procedure TSomeClass.FillArray(var List: Array of TList1; Source: TSource);
begin
for i := 0 to Source.List1.Count - 1 do begin
SetLength(List, Length(List) + 1);
List[i] := TList1.Create(Source.List1[i].Key, Source.List1[i].Value);
end;
end;
全体でwithをFillArray(List: Array of TList2; Source: TSource);
置き換えることを除いて、同一です。私が理解している限り、これは単一の塗りつぶし方法を使用することでうまく回避できます。まだ、私はこれについてどうやって行くのか見当がつかない。誰かがこれについていくつかの良い指針を持っていますか?ありがとう!TList1
TList2
TObjectList