delphi - 类应该在哪里释放其私有(private)变量?

标签 delphi memory-management garbage-collection

由于Delphi中没有垃圾回收,那么变量到底在哪里卸载呢?

假设我有一个带有一组私有(private)变量的类型。 有一个 Destroy 方法可以实现这个功能就足够了吗? 我是否需要在我的消费类中显式调用此销毁方法?

最佳答案

在 delphi 中组织销毁的最佳方法是始终考虑“谁将创建给定的变量”。

如果您也在这种情况下释放它们(对于您的私有(private)变量,类的 destroy 方法),那么您遇到内存泄漏的可能性就会小得多。

实际上类的析构函数通常不会通过调用

myInstance.Destroy();

相反,典型的做法是通过

FreeAndNil(myInstance);

myInstance.Free();

因为delphi将处理按顺序调用析构函数

关于delphi - 类应该在哪里释放其私有(private)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2177586/

相关文章:

c++ - 将 new 用于 char* 数组的正确语法

delphi - EnumWindows有时无法正常工作

delphi - 如何查找用户在 Rave 中选择的页面方向 (Delphi 7)

c++ - 这会彻底清除类对象动态分配的结果吗?

java - 使用 + 运算符分配字符串内存

java - 如何禁用 Java 垃圾收集器?

Android 垃圾收集器在我的应用程序中努力工作

java - gc 期间调用 JNI 函数时 JVM 崩溃

windows - 在同一浏览器选项卡中打开链接

xml - Delphi XE 中的数据绑定(bind)向导 - 可以将其配置为映射到 MSXML 接口(interface)吗?