gpt4 book ai didi

delphi - 如何在 Delphi 中安全地创建和释放多个对象

转载 作者:行者123 更新时间:2023-12-03 14:39:32 25 4
gpt4 key购买 nike

您应该如何安全地创建和释放多个对象?

基本上,这类事情:

  newOrderSource := TWebNewOrderSource.Create();
twData := TTWData.Create();
webData := TWebData.Create();

try
//do stuff
finally
newOrderSource.Free();
twData.Free();
webData.Free();
end;

在这种情况下,第二个和第三个创建命令并不安全,因为它们使用数据库。我是否应该将所有 Creates 放入 try block 中,并在调用 free 之前检查它们是否已分配?

最佳答案

如果您首先将 nil 分配给变量,则可以使用一个 try block 来完成此操作,例如,

newOrderSource := nil;
twData := nil;
webData := nil;
try
newOrderSource := TWebNewOrderSource.Create();
twData := TTWData.Create();
webData := TWebData.Create();

//do stuff
finally
webData.Free();
twData.Free();
newOrderSource.Free();
end;

这是有效的,因为 Free() 检查 Self 是否为 nil

关于delphi - 如何在 Delphi 中安全地创建和释放多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7643653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com