读书人

【提问】Delphi什么类型的变量不需要F

发布时间: 2012-02-10 21:27:42 作者: rapoo

【提问】Delphi什么类型的变量不需要Free/FreeAndNil?
1、哪些类型的变量一定需要释放呢(不管手动还是自动)?
2、释放变量,用Free还是FreeAndNil合适?
3、下面这个procedure:

Delphi(Pascal) code
procedure TOneType.Abc;var temp: MyType;begin  // 位置①  try    temp := MyType.Create(nil); // 位置②  finally    temp.free; // or FreeAndNil(temp)?  end;end;

temp的创建是放在位置①合适还是位置②呢?

请指点,谢谢

[解决办法]
1、创建和释放配对,创建了不需要再使用就要释放。
2、FreeAndNil 等于 x.Free; x := nil; 具体使用看需求,如果你下面要判断对象是否为空,就用FreeAndNil
[解决办法]
1 一般手动的需要,但如果交给了其它地方使用,则不要,例如手动创建了一个空间,把它给了TForm管理,就不要Free了

2 一般局部变量Free就行了,全局变量用FreeAndNil
3 位置1
[解决办法]
位置1
放在位置2编译时会提示没有初始化

读书人网 >.NET

热点推荐