このクラス定義が機能していると仮定します
TStringListNF = class (TStringList)
procedure TestContenu (verif : Boolean);
destructor DestroyList;
destructor DestroyListFree;
end;
そして、このクラスのクラス本体も機能しています
destructor TStringListNF.DestroyList;
{//Verified 27 june 98}
var
i : Integer;
tempItem : TObject;
begin
for i:= 0 to Count-1 do
begin
tempItem := Objects[i];
tempItem.destroy;
end;
inherited destroy;
end;
destructor TStringListNF.DestroyListFree;
{//Verified 27 june 98}
var
i : Integer;
tempItem : TObject;
begin
for i:=0 to Count-1 do
begin
tempItem := Objects[i];
if tempItem <> nil then
tempItem.destroy;
end;
inherited destroy;
end;
私の質問は、なぜ 2 つのデストラクタがあるのか、および C# で 2 つのデストラクタを複製する方法です。
ご覧のとおり、コードは古いですが動作しており、C# で動作するようにしようとしています。そのため、デストラクタを作成し、デストラクタで必要なことを行うだけで済みます。