关于德尔福记录的一些问题:
>由于记录几乎像类,为什么不使用类而不是记录?
>理论上,当记录由变量声明时被分配给记录;但是,如何释放内存?
>我可以理解指针记录到列表对象中的实用程序,但是使用泛型容器(TList
对于1和2:记录是值类型,而类是引用类型.它们分配在堆栈上,或者直接在包含它们的任何较大变量的内存空间中,而不是通过指针分配,并在编译器超出范围时自动清除.
至于您的第三个问题,TList< TMyRecord>内部声明一个存储空间的TMyRecord数组.列表中的所有记录将被清除.如果要删除特定的一个,请使用Delete方法按索引删除,或者使用Remove方法来查找和删除.但是请注意,由于它是一个值类型,所做的一切都将是复制记录,而不是复制对它的引用.
代码日志版权声明:
翻译自:https://stackoverflow.com/questions/1876879/records-in-delphi
翻译自:https://stackoverflow.com/questions/1876879/records-in-delphi
转载注明原文:德尔福记录
解决方法
对于1和2:记录是值类型,并在编译器超出范围时自动清除.
至于您的第三个问题,而不是复制对它的引用.