delphi泛型函数不应该能够进行类型转换吗?

时间:2018-12-04 06:59:17

标签: function delphi generics casting

我写了我希望这对避免不断访问数据库以基于键查找值的函数很有用:在一次大的阅读中创建一个TDictionary,然后使用它。

但是我不错的代码无法编译:

function TBankImportCols.CreateDictionary<TKey, TValue>(const sql: string): TDictionary<TKey, TValue>;
var qry: TDataset;
begin
  result := TDictionary<TKey, TValue>.Create;
  qry := DM.CreateQry(sql);
  while not qry.Eof do begin
    result.Add(qry.Fields[0].Value, qry.Fields[1].Value);
    qry.Next;
  end;
  qry.Free;
end;

我遇到2个错误: [dcc32错误] uBankData.pas(519):E2010不兼容的类型:'TKey'和'Variant' [dcc32错误] uBankData.pas(519):E2010不兼容的类型:“ TValue”和“ Variant”

这是使用柏林10.1。似乎编译器应该能够解决该问题。我在这里做错什么了吗?

TIA 标记

0 个答案:

没有答案