在Delphi中使用TList时是否必须分配和释放记录?
发布时间:2020-12-15 04:10:39 所属栏目:大数据 来源:网络整理
导读:问题或多或少都说明了一切.鉴于以下记录结构: type TPerson = record Name: string; Age: Integer; end; PPerson = ^TPerson; TPersonList = TListTPerson; 以下代码是否有效? procedure ReadPeople(DataSet: TDataSet; PersonList: TPersonList);begin Pe
问题或多或少都说明了一切.鉴于以下记录结构:
type TPerson = record Name: string; Age: Integer; end; PPerson = ^TPerson; TPersonList = TList<TPerson>; 以下代码是否有效? procedure ReadPeople(DataSet: TDataSet; PersonList: TPersonList); begin PersonList.Count := DataSet.RecordCount; if DataSet.RecordCount = 0 then Exit; DataSet.First; while not DataSet.Eof do begin PersonList[DataSet.RecNo].Name := DataSet.FieldByName('Name').AsString; PersonList[DataSet.RecNo].Age := DataSet.FieldByName('Age').AsInteger; DataSet.Next; end; end; 我是否必须使用GetMem / FreeMem来分配和释放TPersonList的实例,或者我是否可以直接直接访问TPersonList条目?我的直觉说代码应该是有效的,虽然我不确定是否有任何与记录初始化或完成相关的皱纹. 解决方法
你的代码很好.当您使用Tlist< T>时对于记录,它将它们视为值类型,以便复制.没有必要为它们分配指针.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |