0

このクラス定義が機能していると仮定します

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# で動作するようにしようとしています。そのため、デストラクタを作成し、デストラクタで必要なことを行うだけで済みます。

4

1 に答える 1