この短いDelphi手順を検討してください。
procedure TfrmXQuery.FieldListFillFromDefault;
var
field_list: TStringList;
begin
try
if x <> '' then begin
field_list := TStringList.Create;
{do some stuff with field_list}
end;
finally
if field_list <> NIL then
begin
field_list.Free;
end;
end;
end;
これをDelphi3で実行すると、x =''であるため、field_listは作成されません。
- なぜ
field_list <> NILですか? - オブジェクトは次のように初期化されていません
NILか? - そうでない場合
NILはそれは何ですか? - 割り当てられていない場合、どうすれば割り当てられて
NILいるかどうかを知ることができFreeますか?関数はAssigned教えてくれません:if Assigned(an_object)と同等ですif an_object = NIL