如何初始化声明为局部变量的记录?

Ken*_*ran 9 delphi

我在类的方法中使用由字符串,布尔值,整数,货币和其他记录数组组成的记录.我想以递归方式初始化基本类型的所有字段为空/假/零.默认情况下,Delphi似乎不这样做.是否有一种直接的方法来实现这一点,不涉及通过名称访问每个字段并手动设置它?

Lie*_*ers 11

您可以使用以下任一构造(其中Foo是记录).

FillChar(Foo, SizeOf(Foo), 0); 

ZeroMemory(@Foo, SizeOf(Foo));
Run Code Online (Sandbox Code Playgroud)

来自Allen Bauer的帖子

在查看FillChar的最常见用途的同时,为了确定大多数人是否使用FillChar实际用字符数据填充内存,或者只是用它来用一些给定的字节值初始化内存,我们发现后一种情况主导了它的使用而不是前者.有了这个,我们决定保持FillChar以字节为中心.

  • 或者相同的代码(可能)具有更好的可读性:ZeroMemory(@Foo,SizeOf(Foo)); (4认同)

归档时间:

查看次数:

6058 次

最近记录:

15 年,6 月 前