考虑以下
constructor TSettlement.Assign( const OldInst : TSettlement; const ResetFsToo: Boolean );
begin
//inherited
Create;
if OldInst = nil then
exit;
Self.Acceptancedate := OldInst.Acceptancedate;
// etc etc
end;
并请考虑代码中其他地方的这些调用
SettInst.Assign(DisplaySett, False);
DisplaySett := TSettlement.Assign(nil, False);
NewInst := TSettlement.Assign( Displaysett, False );
和(也许是最糟糕的)
if OldList.Count > 0 then
for loop := 0 to OldList.Count -1 do
Self.Add(TSettlement.Assign(OldList.Data[loop], True));
这是泄漏代码,我反对将方法名称“分配”用于构造函数,原因我认为很明显,但我没有义务修复它。
我想改进它,因为我对自己的工作感到自豪。
我建议将Assign
方法从构造函数更改为过程,并删除对Create()
. 这将需要我在应用程序的许多地方更改代码。显然,这样做是有风险的。
在我深入研究并开始破解之前,任何人都可以建议我应该考虑的任何替代方法吗?
有没有我可能没有想到的陷阱我应该注意?