做TList <tpair <uint32,uint32 =“”>&gt;需要自由吗?

时间:2017-09-14 15:57:41

标签: delphi

我写了代码

procedure Pair;
var
  PairList: TList<TPair<UInt32, UInt32>>;
  LPair: TPair<UInt32, UInt32>;
begin
  PairList := TList<TPair<UInt32, UInt32>>.Create;
  try
    PairList.Add(LPair.Create(4,10));
  finally
    PairList.Free;
  end;
end;

当我释放PairList时,我创建的对也需要被释放?

1 个答案:

答案 0 :(得分:9)

您不必释放TPair个变量,因为它是一个值类型 - 声明为

的记录
  TPair<TKey,TValue> = record
    Key: TKey;
    Value: TValue;
    constructor Create(const AKey: TKey; const AValue: TValue);
  end;

如果您尝试使用LPair.Free发布它,则会出现编译错误

  

E2003未声明的标识符:'免费'