1、哪些类型的变量一定需要释放呢(不管手动还是自动)?
2、释放变量,用Free还是FreeAndNil合适?
3、下面这个procedure:
procedure TOneType.Abc;
var temp: MyType;
begin
  // 位置①
  try
    temp := MyType.Create(nil); // 位置②
  finally
    temp.free; // or FreeAndNil(temp)?
  end;
end;temp的创建是放在位置①合适还是位置②呢?请指点,谢谢

解决方案 »

  1.   

    1、创建和释放配对,创建了不需要再使用就要释放。
    2、FreeAndNil 等于 x.Free; x := nil; 具体使用看需求,如果你下面要判断对象是否为空,就用FreeAndNil
      

  2.   

    1 一般手动的需要,但如果交给了其它地方使用,则不要,例如手动创建了一个空间,把它给了TForm管理,就不要Free了2 一般局部变量Free就行了,全局变量用FreeAndNil
    3 位置1