我可以将“任意”记录类型传递给我的程序吗?
我多次使用带有字符串的“记录”。
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;
感谢您的每一个信息!
答案 0 :(得分:11)
不要让它过于复杂。如果您不想写两行来清除记录,请考虑声明:
Const TR_Empty: TR = ();
并使用它:
R := TR_Empty;
正如其他人评论的那样,这样做的通用程序是不值得的。
如果您有Delphi-2009或更新版本,此代码可用于清除记录:
R := Default(TR);