基础问题(50分)

  • 主题发起人 主题发起人 giraffe10
  • 开始时间 开始时间
G

giraffe10

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何判断和释放一个对象实例
如下的2种办法是否一样。
VAR
A : TIMAGE;
判断
IF A <> NIL THEN A.FREE;
IF ASSIGNED(A) THEN A.FREE;
释放
A.FREE;
FreeAndNil(A);
 
FreeAndNil(A); = A.free; A := nil;
ASSIGNED(A) = A <> nil;
 
补充一下:
Assigned(P)用于判断指针类型和函数是否为nil。
应此其等价于:
为指针时: P <> nil
为函数时: @P <> nil
比如下面的代码:
var
P: TNotifyEvent;
begin
P := BitBtn1Click;
if @P <> nil then now;
// if P <> nil then now; //编译错误
if Assigned(P) then now;
end;
 
后退
顶部