4

我可以将“任何”记录类型传递给我的程序吗?

很多时候,我将“记录”与字符串一起使用。

type 
  TR = record
    a: string;
    b: string;
  end;

要清除它们,我需要写:

Finalize(R);
FillChar(R, SizeOf(R), #0);

问题是我如何通过任何类型的记录来清除它?

为此,我得到了这个提示:“表达式不需要初始化/完成”。

procedure ClearRecord(var R);
begin
  Finalize(R);
  FillChar(R, SizeOf(R), #0);
end;

感谢您提供的每一个信息!

4

1 回答 1

11

不要让它过于复杂。如果您不想写一个两行来清除记录,请考虑声明:

Const TR_Empty: TR = ();

并使用它:

R := TR_Empty;

正如其他人所评论的那样,这样做的通用程序是不值得的。

如果您有 Delphi-2009 或更新版本,则此代码对清除记录有效:

R := Default(TR);
于 2012-09-10T14:45:56.340 回答