Free
メソッドを呼び出した後、オブジェクトがnil
でないのはなぜですか?私は、例えば、次のクラスを意味する何
:オブジェクトを解放した後nil
ではなく、どのように私はa := nil
を使用せずに、デストラクタの後nil
をするa
を行いますなぜTObjectとNILのデストラクタクラスDelphi
type Ta = class(TObject)
public
i: integer;
destructor Destroy; override;
end;
destructor Ta.Destroy;
begin
inherited;
end;
procedure Form1.Button1;
var a: Ta;
begin
a := Ta.Create;
a.Free;
if a = nil then
button1.Caption := 'is assigned'
else
button1.caption := 'is not assigned';
end;
私の質問はありますか?
オブジェクトを解放しても、それをnilに設定することはありません。 FreeAndNil(a)を使用してください – kobik
そしてあなたはデストラクタからそれを作ることができません? – user558126
いいえ、できません。 – kobik