【提问】Delphi什么类型的变量不需要Free/FreeAndNil?该怎么解决
【提问】Delphi什么类型的变量不需要Free/FreeAndNil?1、哪些类型的变量一定需要释放呢(不管手动还是自动)?2、
【提问】Delphi什么类型的变量不需要Free/FreeAndNil?
1、哪些类型的变量一定需要释放呢(不管手动还是自动)?
2、释放变量,用Free还是FreeAndNil合适?
3、下面这个procedure:
Delphi(Pascal) codeprocedure 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编译时会提示没有初始化