首先官方的定义:
TTypeKind = (tkUnknown, tkInteger, tkChar, tkEnumeration, tkFloat,
tkString, tkSet, tkClass, tkMethod, tkWChar, tkLString, tkWString,
tkVariant, tkArray, tkRecord, tkInterface, tkInt64, tkDynArray, tkUString,
tkClassRef, tkPointer, tkProcedure, tkMRecord);
测试自动转换:
procedure add(data: array of TValue); var i: Integer; key: string; begin for i := 0 to (Length(data) - 1) do begin if (i mod 2) = 0 then begin key := data[i].AsString; end else begin map2.Add(key, data[i]); end; end; end;
procedure TForm1.btn2Click(Sender: TObject); var key: string; begin add([ 's', '我是一个字符串', // tkUString 's2', 'c',// tkUString 'i32', 32, // tkInteger 'i64', 9223372036854775708,//2的63次方 - 100 ; tkInt64 'ui64', 18446744073709551516, //2的64次方 - 100; 依然是 tkInt64 类型,结果不影响 'bl', True, // tkEnumeration 'fl', 2323.23223//tkFloat ]); for key in map2.Keys do begin mmo1.Lines.Add(key + ' --- ' + TValue.From<TTypeKind>(map2.Items[key].Kind).ToString); end; if map2.Items['bl'].AsBoolean then begin mmo1.Lines.Add('yes'); end else begin mmo1.Lines.Add('no'); end; //测试uint64,是否正常 mmo1.Lines.Add(map2.Items['ui64'].AsUInt64.ToString); // 18446744073709551516,结果正常 end;
本文来自博客园,作者:del88,转载请注明原文链接:https://www.cnblogs.com/del88/p/17391487.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人